Codevs1995 黑魔法师之门 并查集
2016-11-13 10:55
302 查看
Codevs1995 黑魔法师之门
hzw:并查集维护,如果两点,在同一集合中 ans*2+1
hzw:并查集维护,如果两点,在同一集合中 ans*2+1
#include <cstdio> #include <cstring> #include <iostream> #include <cstdlib> using namespace std; #define MAXN (300020) #define mod (1000000009) int first[MAXN], nxt[MAXN<<1], fa[MAXN]; struct edge{ int from, to, cost; }es[MAXN << 1]; int find(int x) { int r = x; while(r != fa[r]) r = fa[r]; int t; while(x != r) { t = fa[x]; fa[x] = r; x = t; } return r; } void read(int &a) { a = 0; bool f = 0; char ch = getchar(); while(!isdigit(ch)) { if(ch == '-') f = 1; ch = getchar(); } while(isdigit(ch)) { a *= 10; a += (ch-'0'); ch = getchar(); } if(f) a *= -1; } int main() { int n, m, ans = 0; read(n);read(m); for(int i = 1; i <= n; ++ i) fa[i] = i; while(m--) { int a, b; read(a);read(b); int ya = find(a), yb = find(b); if(ya != yb) fa[ya] = yb; else ans = (((ans%mod)*2)%mod+1)%mod; printf("%d\n", ans); } return 0; }
相关文章推荐
- 【tyvj1863】【codevs1995】黑魔法师之门,有毒的并查集
- CODEVS1995 || TYVJ1863 黑魔法师之门
- Codevs1995黑魔法师之门
- <并查集+脑洞>codevs 1995 黑魔法师之门
- Codevs 1995 黑魔法师之门
- 黑魔法师之门(codevs1995)
- Codevs 1069 && 洛谷 1525 关押罪犯 并查集
- 贪心 + 并查集 之 CODE[VS] 1069 关押罪犯 2010年NOIP全国联赛提高组
- 【codevs1069】关押罪犯[noip2010](并查集)
- codevs 1001 舒适的路线 并查集
- codevs 1001 舒适的路线 (并查集)
- codevs3370 选学霸(背包dp,并查集)
- codevs 1191 数轴染色(并查集)
- 【codevs3372】选学霸,并查集+可达性DP
- 【基础练习】【并查集】codevs2796 最小完全图题解
- BZOJ 1050 [HAOI2006]旅行comf CODEVS 1001 舒适的路线 并查集
- codevs 1069 关押罪犯 (并查集)
- codevs 1001 舒适的路线(并查集) 题解
- codevs 星际跳跃并查集的应用
- CODEVS1001 舒适的路线 (并查集)