
并查集
zhhx2001
这个作者很懒,什么都没留下…
展开
-
食物链(并查集,分点)
食物链完全自己做的,智商瞬间++,由此发现只要肯想,就能做出来的,还是要逼自己使劲想 果然,并查集稍微难一点的就是一个点分为各种情况的多个点,然后在相对的点对中建立关系 再进行判断,其实可以将合并等赋予一定的意义,便于做并查集的题。其实就是想方法转化啊!!! 至于本题:两个在一个集合代表同一个物种,x+n代表x所吃的物种,x+2*n代表吃x的物种(因为一共就只有三种,并且关系是循环的原创 2016-06-27 18:55:27 · 580 阅读 · 0 评论 -
hdu1272(并查集水题,然而我状态处于低谷,无限wa呜呜呜)
直接并查集判环就行,同时还要保证它是一个连通图 #include #include #include #include using namespace std; const int N=100008; int fa[100009]; bool h[100009]; int find(int x) { return x==fa[x]?x:fa[x]=find(fa[x]); } int m原创 2016-07-11 15:37:54 · 296 阅读 · 0 评论 -
[HNOI2005]狡猾的商人(并查集维护前缀和)
并查集维护前缀和,实际上就是一个差分约束系统,但是这里面只有“=” 罢了,所以可以用并查集做 感觉很多题,自己做都没有恰当的思路,思路都很乱,并查集真的很灵活 val表示从到根节点相差多少。如果在一个集合里,通过减取差,即可知道他们之间的距离 不在一个集合的话,就把他们连起来 我想,以后做题,没有必要用最优解,我可以尝试用自己的方法来做,实在不行再看题解!! #include #in原创 2016-07-02 10:53:19 · 414 阅读 · 0 评论 -
BZOJ1603(分点并差集)
Farmer John有一个过时的打谷机(收割小麦),它需要带子来带动。发动机驱动轮1总是顺时针旋转的,用来带动转轮2,转轮2来带动转轮3,等等。一共有n(2 #include #include #include #include #include using namespace std; int n,fa[5005]; int getfa(int x) { ret原创 2016-09-09 20:34:32 · 365 阅读 · 0 评论 -
usaco光纤通信(并查集)
农民John 想要用光纤连通他的N (1原创 2016-05-01 20:21:51 · 689 阅读 · 0 评论