随笔分类 -  并查集

摘要:思路:用并查集即可,每次合并的时候将小的集合合并到大的集合上去。理论上的平均复杂度是n*lgn*lgn。#include#include#include#include#include#include#define Maxn 100010#define LL long long#define Mod 1000000007int sz[Maxn],fa[Maxn];using namespace std;priority_queue q[Maxn];void init(){ for(int i=0;isz[y]){ q[x].push(s1); q[x].pus... 阅读全文
posted @ 2013-12-19 17:32 fangguo 阅读(213) 评论(0) 推荐(0)
摘要:思路:这题的出题人是不是语文不行啊,题目意思说不清楚。知道是求存在路径的点对数后,用并查集每次记录集合中点的数目,很容易就解决了。#include#include#include#include#include#include#include#include#include#include#define pb push_back#define mp make_pair#define Maxn 200100#define Maxm 800002#define LL __int64#define Abs(x) ((x)>0?(x):(-x))#define lson(x) (x<< 阅读全文
posted @ 2013-09-05 18:04 fangguo 阅读(175) 评论(0) 推荐(0)
摘要:虚拟一个根节点n,设其值为0.并且始终保持其为根。#include#include#include#include#include#include#include#include#include#include#include#define Maxn 40010#define Maxm 100010#define LL __int64#define Abs(x) ((x)>0?(x):(-x))#define lson(x) (x num;void init(){ for(int i=0;i<Maxn;i++){ fa[i]=i; val[i]=0; }... 阅读全文
posted @ 2013-09-01 10:34 fangguo 阅读(194) 评论(0) 推荐(0)
摘要:思路:每次合并时,都是给一个虚拟的根。#include#include#include#include#include#include#include#include#include#include#include#define Maxn 100010#define Maxm 2000010#define LL __int64#define Abs(x) ((x)>0?(x):(-x))#define lson(x) (x<<1)#define rson(x) (x<<1|1)#define inf 0x3f3f3f3f#define Mod 1000000007 阅读全文
posted @ 2013-08-29 19:58 fangguo 阅读(197) 评论(0) 推荐(0)
摘要:思路:将边从大到小排序,判断向哪边连,能使总和最大。#include#include#include#include#include#include#include#include#include#include#include#define Maxn 200010#define Maxm 200010#define LL __int64#define Abs(x) ((x)>0?(x):(-x))#define lson(x) (xtemp.val; }}p[Maxn];int Set[Maxn];LL sum[Maxn],num[Maxn];int Find(int x){ i... 阅读全文
posted @ 2013-08-26 15:22 fangguo 阅读(218) 评论(0) 推荐(0)
摘要:思路:当a,b的根节点find(a)与find(b)不同时,就直接将这两个数连接起来。由于每个树的根节点的kind值一定为0,所以,对于a,b的kind值相同,我们就讲其中一个根的kind值变为1,当下次再遍历该节点的时候,a与b的kind值就会变得不同。如果a,b的kind值相同,那么就不用变。看代码:#include#include#include#include#define Maxn 20010using namespace std;int set[Maxn],kind[Maxn];int find(int x){ if(x!=set[x]) { int te... 阅读全文
posted @ 2013-07-19 17:24 fangguo 阅读(170) 评论(0) 推荐(0)