hdoj1814 Peaceful Commission【2-set】
来源:互联网 发布:软件登录itunes store 编辑:程序博客网 时间:2024/06/06 05:03
题目:hdoj1814 Peaceful Commission
讲解:这里
这是这个题目要输出字典序最小的解,刚好第一种暴力的解法输出来的就是原题目的解,因为每次染色的时候先染字典序小的,所以肯定对。
AC代码:
#include <iostream>#include <cstdio>#include <cstring>#include <vector>#include <cmath>#include <stack>#include <algorithm>using namespace std;const int N = 8200;bool vis[2*N];struct TwoSet{ vector<int> G[2*N]; int s[2*N],c; void init(int n) { for(int i=0;i<=2*n;i++) G[i].clear(); memset(vis,false,sizeof(vis)); } void add_Node(int x,int y) { G[x].push_back(y^1); G[y].push_back(x^1); } bool dfs(int x) { if(vis[x^1]) return false; if(vis[x]) return true; vis[x] = true; s[c++] = x; for(int i=0;i<G[x].size();i++) { if(!dfs(G[x][i])) return false; } return true; } bool yougth(int n) { for(int i = 0;i< 2*n;i+=2) { if(!vis[i] && !vis[i+1]) { c = 0; if(!dfs(i)) { while(c>0) vis[ s[--c] ] = false; if(!dfs(i+1)) return false; } } } return true; }};TwoSet solve;int main(){// freopen("Input.txt","r",stdin); int n,m; while(~scanf("%d%d",&n,&m)) { solve.init(n); for(int i=0;i<m;i++) { int x,y; scanf("%d%d",&x,&y); x--,y--; solve.add_Node(x,y); } if (!solve.yougth(n)) printf("NIE\n"); else { for (int i=0;i<(n<<1);i++) if (vis[i]==1) printf("%d\n",i+1); } } return 0;}
0 0
- hdoj1814 Peaceful Commission【2-set】
- hdu1814 Peaceful Commission,2-sat
- hdu1814 Peaceful Commission 2-sat
- hdu1814 Peaceful Commission(2-sat)
- hdu1814 Peaceful Commission 2-SAT
- 2-sat hoj 和平委员会 Peaceful Commission
- [hit 1917] Peaceful Commission(2-sat)
- 【HDU】1814 Peaceful Commission 2-sat
- 【2-sat】 HDOJ 1814 Peaceful Commission
- HDU 1814 Peaceful Commission(2-sat)
- hdu 1814 Peaceful Commission(2-sat)
- hdu 1814 Peaceful Commission (2-SAT)
- HDU 1814 Peaceful Commission (2-SAT)
- hdu 1814 Peaceful Commission (2-sat入门)
- HDU 1814 Peaceful Commission 2-sat 爆搜
- HDU 1814 Peaceful Commission(2-SAT)
- HDU 1814 Peaceful Commission(2-SAT)
- hdu 1814 Peaceful Commission (2-SAT)
- 第九周项目2-Time类中的运算符重载(续)(1)定义自加++自减--一目运算符
- 冒泡排序基本算法
- 面向对象编程的弊端是什么?
- hdu5229 ZCC loves strings 博弈
- opencv 2.0 CvMat使用
- hdoj1814 Peaceful Commission【2-set】
- 二进制到十六进制转换程序
- ant的文件相关操作
- 第九周项目二 Time类中的运算符重载(续)(2)定义Time类的>>和<<
- 大连交大iptv
- 【万里征程——Windows App开发】如何使用粘贴板
- 不同profile之间EJB调用问题javax.naming.NameNotFoundException
- hello, world!
- 第十一周阅读程序二