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