随笔分类 -  ACM~并查集

摘要:这题把前面两道题组合到了一起 判断最小生成树 和是否是一棵树#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int father[101];bool flags[101];struct country{ int first; int second; int value;}a[5001];bool cmp(country x,country y){ return x.value<y.value;}int ma 阅读全文
posted @ 2011-05-16 23:19 Crazy_yiner 阅读(319) 评论(0) 推荐(0)
摘要:为了学习最小生成树 这两天学习了并查集 做并查集的题碰到了一道最小生成树 自己搞定了这道题 非常的高兴哈~#include<iostream>#include<stdio.h>#include<algorithm>using namespace std;int father[101];void makeset(int n){ for(int i=1;i<=n;i++) { father[i]=i; }}int findset(int x){ if(father[x]!=x) { father[x]=findset(father[x]); } retur 阅读全文
posted @ 2011-05-16 23:18 Crazy_yiner 阅读(258) 评论(0) 推荐(0)
摘要:#include<iostream>#include<stdio.h>#include<string.h>using namespace std;bool flags[1001];int father[1001];void makeset(int n){ for(int i=1;i<=n;i++) { father[i]=i; }}int findset(int x){ if(x!=father[x]) { father[x]=findset(father[x]); } return father[x];}void Union(int a,int b) 阅读全文
posted @ 2011-05-16 23:17 Crazy_yiner 阅读(195) 评论(0) 推荐(0)
摘要:#include<iostream>#include<stdio.h>using namespace std;int father[10000001],num[10000001];/**//*初始化数组*/void makeset(int x){ for(int i=0;i<=x;i++) { father[i]=i; num[i]=1; }}int findset(int x)//查{ if(x!=father[x]) { father[x]=findset(father[x]); }//回溯 return father[x];}void Union(int a 阅读全文
posted @ 2011-05-16 23:16 Crazy_yiner 阅读(214) 评论(0) 推荐(0)
摘要:#include<iostream>#include<stdio.h>using namespace std;int sum,n,m;int father[50001];void makeset(int x){ for(int i=1;i<=x;i++) { father[i]=i; }}int findset(int x)//查{ if(x!=father[x]) { father[x]=findset(father[x]); }//回溯 return father[x];}void Union(int a,int b){ int x=findset(a); i 阅读全文
posted @ 2011-05-16 23:15 Crazy_yiner 阅读(170) 评论(0) 推荐(0)
摘要:/*如果两个学生的信仰一样 则总的宗教个数减一 */#include<iostream>#include<stdio.h>using namespace std;int sum,n,m;int father[50001];void makeset(int x){ for(int i=1;i<=x;i++) { father[i]=i; }}int findset(int x)//查{ if(x!=father[x]) { father[x]=findset(father[x]); }//回溯 return father[x];}void Union(int a,i 阅读全文
posted @ 2011-05-16 23:05 Crazy_yiner 阅读(185) 评论(0) 推荐(0)
摘要:学习并查集做的第一道题 基本上就是套用模版的#include<iostream>#include<stdio.h>using namespace std;int n,m;int father[30001],num[30001];/**//*初始化数组*/void makeset(int x){ for(int i=0;i<x;i++) { father[i]=i; num[i]=1; }}int findset(int x)//查{ if(x!=father[x]) { father[x]=findset(father[x]); }//回溯 return fath 阅读全文
posted @ 2011-05-16 23:03 Crazy_yiner 阅读(230) 评论(0) 推荐(0)
摘要:寒假的时候就看到并查集了 当时觉得有点难 另外没怎么听说过这个就没学 这几天想学最小生成树 发现最小生成树等许多东西可以靠并查集来实现 所以今天学习了一下并查集 用我看新算法的老方法 一遍一遍的看 最后终于有了点头绪 跟着教程写了一道题之后 下午自己又独立的做了几道题 感觉还是不错的 当然,有些题没有过 大体的思路我了解 但是可能在一些细节的地方没有处理好 导致wrong 有时间还有继续改下面是我认为比较合适的并查集模板~#include<iostream>#include<stdio.h>using namespace std;int father[10000001] 阅读全文
posted @ 2011-05-16 23:01 Crazy_yiner 阅读(222) 评论(0) 推荐(0)