CDOJ1328 卿学姐与诡异村庄
来源:互联网 发布:小学测验软件 编辑:程序博客网 时间:2024/04/29 08:06
附网址:http://acm.uestc.edu.cn/#/problem/show/1328
这道题是数据结构题,据说是并查集,然而弱鸡的我强转图论用了2-set
对很明显可以拆开用2-set做这题,将是否是好人存下来,存下两种情况 eg:1说2是坏人 那么插进去的就是 (1,1,2,0)和(1,0,2,1)两种情况。(1表示好人,0表示坏人)
附代码(大白的版)
// 2-set by liucxy#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>#include<vector>#define maxn 100005using namespace std;int N;struct node{int n;vector<int> G[maxn * 2];bool mark[maxn * 2];int s[maxn * 2],c;void init(int n){this->n = n;for (int i = 0; i < N * 2; i++) G[i].clear();memset(mark, 0, sizeof(mark));}bool dfs(int x){if (mark[x ^ 1]) return false;if (mark[x]) return true;mark[x] = true;s[c++] = x;for (int i = 0; i < G[x].size(); i++)if (!dfs(G[x][i])) return false;return true;}void add_clause(int x, int xval, int y, int yval){x = x * 2 + xval;y = y * 2 + yval;G[x ^ 1].push_back(y);G[y ^ 1].push_back(x);}bool solve(){for (int i = 0; i < N * 2; i += 2){if (!mark[i] && !mark[i+1]){c = 0;if (!dfs(i)){while(c > 0) mark[s[--c]] = false;if (!dfs(i + 1)) return false;}}}return true;}} hehe;int main(){scanf("%d",&N);hehe.init(N);for (int i = 0; i < N; i++){int x, y;scanf("%d%d", &x, &y);if (y==1){hehe.add_clause(i,1,x-1,0);hehe.add_clause(i,0,x-1,1);//插入过程;}else if (y==2){hehe.add_clause(i,1,x-1,1);hehe.add_clause(i,0,x-1,0);//插入过程;}}bool haha=hehe.solve();if (haha) printf("Time to show my power\n");else printf("One face meng bi\n");return 0;}
0 0
- CDOJ1328 卿学姐与诡异村庄
- 卿学姐与诡异村庄(并查集)
- 【CDOJ 1328】卿学姐与诡异村庄 【并查集】
- 2016 UESTC Training for Data Structures C - 卿学姐与诡异村庄 并查集
- 2016 UESTC Training for Data Structures C - 卿学姐与诡异村庄 CDOJ 1328 并查集
- 2016 UESTC Training for Data Structures C -> 卿学姐与诡异村庄 CDOJ 1328 并查集
- 【cdoj 1328】卿学姐与诡异村庄 并查集(值的一看)
- CDOJ 1328 卿学姐与诡异村庄(并查集判断矛盾)
- 2016 UESTC Training for Data Structures C 卿学姐与诡异村庄
- volatile 与诡异事件
- 诡异的谈话与思索
- 诡异
- 诡异
- 诡异
- c++的诡异与艺术一例
- 第一章奇怪的村庄
- 灰色的村庄
- 记忆中的村庄
- HDU:1869 六度分离(floyd最短路径算法打表)
- Maximo 教程 (1)
- 【校内互测】Sunshine’s string(merge) (状压dp)
- MFC文件夹打开,文件打开,文件夹下文件遍历(转载)
- HDOJ 5025 Saving Tang Monk(BFS + 优先队列 + 状态压缩)
- CDOJ1328 卿学姐与诡异村庄
- hdu5795 A Simple Nim(博弈找规律)
- poj 2240 Arbitrage
- java与c++的主要区别
- 扩展欧几里德,求逆元模板
- Hdu 4594 Difference(奇圈判断+差分约束)
- 杂谈——美妙的信息奥赛集训班
- 顺时针打印矩阵
- C语言实现显示日历