并差集
文章平均质量分 52
LeeBooL
这个作者很懒,什么都没留下…
展开
-
POJ 1733
#include #include #include #include using namespace std; #define maxn 1000007 #define LL long long struct node { LL data; int next; } hashta[1000100]; int head[maxn], num; int def[1000100原创 2014-11-16 23:10:25 · 297 阅读 · 0 评论 -
The Suspects 并差集
#include #include #include #include #include using namespace std; #define MAXN 30000 + 11 int fa[MAXN]; int num[MAXN]; int findfa(int x) { if(fa[x] == -1) return x; return fa[x] =原创 2015-03-13 17:50:24 · 333 阅读 · 0 评论 -
Wireless Network(并差集)
#include #include #include #include #include #include using namespace std; #define MAXN 1111 int fa[MAXN]; int x[MAXN], y[MAXN]; bool ok[MAXN]; vector rel[MAXN]; int n, d; bool getdis(int i, in原创 2015-03-13 17:49:16 · 306 阅读 · 0 评论 -
How Many Tables
How Many Tables Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Practice HDU 1213 Description Today is Ignatius' birthday. He invites a lot原创 2015-03-17 00:24:09 · 269 阅读 · 0 评论 -
The Suspects
B - The Suspects Time Limit:1000MS Memory Limit:20000KB 64bit IO Format:%I64d & %I64u Submit Status Practice POJ 1611 Description Severe acute respiratory syndrome (SARS), an原创 2015-03-17 00:23:04 · 258 阅读 · 0 评论 -
Is It A Tree?
#include #include #include #include using namespace std; #define MAXN 111111 int fa[MAXN]; int node[MAXN]; bool flag = 1; int findfa( int x) { if(fa[x] == -1) return x; return fa[x] = fin原创 2015-03-17 00:39:32 · 349 阅读 · 0 评论 -
A Bug's Life
#include #include #include #include using namespace std; #define MAXN 1000000 int fa[MAXN]; int rel[MAXN]; int findfa(int x) { if(fa[x] == -1) return x; int tem = findfa(fa[x]); rel[原创 2015-03-17 00:36:16 · 321 阅读 · 0 评论 -
Parity game
#include #include #include #include #include using namespace std; map fa; map rel; int findfa(int x) { if(fa[x] == 0) return x; int tem = findfa(fa[x]); rel[x] = (rel[x] + rel[fa[x]原创 2015-03-17 00:35:06 · 333 阅读 · 0 评论 -
Supermarket
#include #include #include #include #include using namespace std; #define MAXN 10010 struct node { int p, d; }list[MAXN]; int fa[MAXN]; bool cmp(node a, node b) { if(a.p != b.p) ret原创 2015-03-17 00:32:27 · 441 阅读 · 0 评论 -
True Liars
给出p1+p2个人,其中p1个是好人,p2个是坏人。然后有一些关系 ,a说b是好人(坏人).其中没有矛盾的,判断是否有唯一解判断哪些人是好人,哪些人是坏人。 其中比较重要的是,好人总说真话,坏人总说假话。不需要判断矛盾。唯一解 那么如果一个人说另一个人是好人,那么如果这个人是好人,说明 对方确实是好人,如果这个是坏人,说明这句话是假的,对方也是坏人。 如果一个人说另一个人是坏人,原创 2015-03-17 00:31:34 · 375 阅读 · 0 评论 -
How Many Answers Are Wrong
How Many Answers Are Wrong Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Practice HDU 3038 Description TT and FF are ... friends. Uh... v原创 2015-03-17 00:26:10 · 333 阅读 · 0 评论 -
Connections in Galaxy War
合并时要注意要求 #include #include #include #include #include #include using namespace std; #define MAXN 10001 int fa[MAXN]; int pow[MAXN]; int a[22222], b[22222]; int ans[22222]; map, bool> vis;原创 2015-03-17 00:37:21 · 623 阅读 · 0 评论 -
食物链(并查集, 向量偏移)
- 食物链 Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit Status Practice POJ 1182 Description 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动原创 2015-03-17 00:29:57 · 333 阅读 · 0 评论 -
小希的迷宫
#include #include #include #include using namespace std; #define MAXN 100010 int fa[MAXN]; bool vis[MAXN]; bool flag = 1; int findfa( int x) { if(fa[x] == -1) return x; return fa[x] = fin原创 2015-03-17 00:35:44 · 393 阅读 · 0 评论 -
HDU 2818 Building Block
一个并查集的题, 但是由于要求出每个X下面有多少个石头, 所以我们回退的时候更新,这个一定要注意 #include #include #include using namespace std; #define MAXN 33333 int fa[MAXN], num[MAXN], down[MAXN]; void init() { for( int i = 0 ; i原创 2015-03-25 00:08:30 · 302 阅读 · 0 评论