
并查集
gyarenas
这个作者很懒,什么都没留下…
展开
-
poj 1182 食物链
一个并查集的应用,不是把同一类动物并成一类,而是把能够判断其关系的并成一类,其中每个节点都维护一个relat域,表示其和代表元的关系,0表示同一类,1表示其以代表元为食,2表示其被代表元吃,合并时维护该域即可,对于给出的一个句话,先判断这俩个元素是否已经合成一个集合,如果在一个集合中就可以知道它们之前描述的关系了,判断是否与之前描述的关系相辅即可, 如果不在一个集合中,就把这句话当成真的,然后按照原创 2012-10-25 13:43:35 · 391 阅读 · 0 评论 -
X-Plosives LA3644
#include #include const int MAXN(100010); struct FIND_SET { int fa[MAXN], rank[MAXN]; void init(int n) { for(int i = 1; i <= n; ++i) { fa[i] = i; rank[i] = 1; } } int find(int sou原创 2013-03-22 14:05:33 · 819 阅读 · 0 评论 -
Corporative Network
并查集应用 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2013-03-26 11:14:21 · 668 阅读 · 0 评论 -
Exclusive-OR hdu3234
借鉴cxlove思路, state[i]表示X[i]异或当前的祖先值,设X[r1]为X[i]之前祖先,X[r2]为现在祖先,路径压缩前 state[i] = X[i]^X[r1],state[r1] = X[r1]^X[r2], 路径压缩时令state[i] = state[i]^state[r1] = X[i]^X[r1]^X[r1]^X[r2] = X[i]^X[r2],所以路径压缩递推式成原创 2013-05-15 20:06:10 · 747 阅读 · 0 评论