并查集
文章平均质量分 76
Polya_Xue
这个作者很懒,什么都没留下…
展开
-
hdu1232(并查集)
看了这里的http://blog.csdn.net/dellaserss/article/details/7724401/并查集大意是将有关联的点放入同一个集合中,两个点判断是否在同一个集合时,判断它们的跟是否相同就可以了mix的作用就是判断将两个点归为同一类,自然它们的跟也要归为同类,将一个跟成为另一个的前缀就好,终极boss大概就是将点们归类有一个路径压缩算法原创 2017-08-08 16:29:46 · 351 阅读 · 0 评论 -
hdu1272(并查集无环且连通)
解题思路:题目意思是找到判断是不是连通无环的图,首先想到的就是并查集。 1》判断成环的时候,只要判断输入边的两个点。有一个共同的父节点,那么这两个点就成环。 2》判断连通的时候,只要判断根节点数为1即可。 注意:当输入的这组数据只有 0 0 时,依然是满足条件的,即应输出 "Yes"。转载 2017-08-08 20:33:20 · 164 阅读 · 0 评论 -
hdu1325(并查集无环连通树)
题意:判断是不是一棵树条件:无环,一个跟节点,看别人的代码要只有一个入度为0的结点,不存在入度大于1的结点和hdu1272代码基本一样,只是这道是有向图,代码区别在了if(l!=r&&l==y) pre[l]=r;无向图的话判断父节点不是一个点就好了,但是树的话一个点只能赋值一次父节点,比如1 2 1 2就错了,至于入度问题~我没理解诶。。原创 2017-08-09 10:58:51 · 632 阅读 · 1 评论 -
hdu1811(拓扑排序+并查集)
Problem Description自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几个人的转载 2017-08-09 19:40:30 · 225 阅读 · 0 评论 -
hdu3367(并查集+kruscal)
题意可以当做求一个最大生成树,用kruscal做,而这棵树中可以包含一个环(至多一个)(用并查集做),这个时候用点数来判断kruscal是不行的,要用边数,把边排好序过滤一遍就可以了新边只有两种情况可以加入,一个是和已生成的树的pre不同,直接加入树,另一种和树的pre相同,若此时树中无环也可以加入并且把树的cir定为1用并查集来归并生成树的boss,就可以用cir[boss]来记原创 2017-08-17 23:06:48 · 255 阅读 · 1 评论 -
hdu1233(floyd+并查集)
用最短距加并查集写出了最小树的效果留个纪念吧~#include using namespace std;#define INF 10000int a[1000][1000],n,d[INF];int pre[105],sum;void Init(){ for(int i=0;i150;i++) {原创 2017-08-15 16:31:37 · 210 阅读 · 0 评论 -
hdu1863(水)
又是一个被我写复杂的prim,发现if(min==imax) break;这一句可有可无嗯,先是我写的后是prim#include #define imax 100005using namespacestd;#define INF 10000int a[105][105],n,d[INF];int原创 2017-08-15 17:39:26 · 182 阅读 · 0 评论