poj 2524 Ubinquitous Religions (并查集)
摘要:http://poj.org/problem?id=2524 依旧简单并查集,拿1611火速改了改火速提交,果断PE...把输出的最后一个空格放%d前面了,真活该不运行就交。 但是这题有个疑问,为什么按秩合并没有比直接合并快??code:#include<cstdio>intp[50005],r[50005];voidmake_set(intn){for(inti=0;i<n;i++){p[i]=i;r[i]=0;}}intfind_set(intx){if(x!=p[x])p[x]=find_set(p[x]);returnp[x];}voidunion_set(intx,
阅读全文
posted @
2012-01-30 21:48
追逐.
阅读(194)
推荐(0)
poj 1611 The Suspects (并查集)
摘要:http://poj.org/problem?id=1611 简单入门并查集,以前已经做过,但是代码不太好。DP优化搞上火了,做做别的换换脑子... 以前代码Memory:356KTime:32MS#include<cstdio>usingnamespacestd;constintmaxn=30000;intfather[maxn+5];//记录父节点intlen[maxn+5];//记录以该点为根的集合元素的个数voidinit(intn){//并查集的初始化inti;for(i=0;i<n;i++){father[i]=i;len[i]=1;}}inlineintgetr
阅读全文
posted @
2012-01-30 21:33
追逐.
阅读(195)
推荐(0)
poj 2492 A Bug's Life(并查集)
摘要:http://poj.org/problem?id=2492题意: 一个无聊的科学家说只有两个不同性别的BUG能在一起,当然是在没有GAY的情况下。给你几对能在一起的BUG,问里面有没有GAY。刚拿到这题第一感觉就是并查集,两种关系,把不同性别的BUG放入两个不同集合里。想了一下发现根本不可行 比如1 2\n 3 4的输入,1 2放入两个集合中,3 4又得放两个集合中,明显不行。 既然不能马上确定3 4属于哪个集,能不能先存下来呢? 用一个数组记录下标元素的对立元素 read(x, y) ; a[x]=y; 当再次读到此元素时,可直接将与x不同性别的元素合并 read(x, z) ; ...
阅读全文
posted @
2012-01-21 18:33
追逐.
阅读(954)
推荐(0)