hdu1814 Peaceful Commission,2-sat
来源:互联网 发布:ssh 默认端口 编辑:程序博客网 时间:2024/06/01 08:50
题目大意:一国有n个党派,每个党派在议会中都有2个代表,现要组建和平委员会,要从每个党派在议会的代表中选出1人,一共n人组成和平委员会。已知有一些代表之间存在仇恨,也就是说他们不能同时被选为和平委员会的成员,现要你判断满足要求的和平委员会能否创立?如果能,请任意给出一种方案。
2-sat问题
#include <cstdio>#include <cstring>#include <vector>#include <iostream>#include <algorithm>using namespace std;const int maxn = 10005;int n, m;vector<int> G[maxn*2];bool mark[maxn*2];int S[maxn*2], top;bool dfs(int x){ if(mark[x^1]) return false; if(mark[x]) return true; mark[x] = true; S[top++] = x; for(int i=0; i<G[x].size(); ++i) if(!dfs(G[x][i])) return false; return true;}bool TwoSat(){ memset(mark, 0, sizeof mark ); for(int i=0; i<n; i += 2) { if(!mark[i] && !mark[i^1]) { top = 0; if(!dfs(i)) { while(top) mark[S[--top]] = false; if(!dfs(i^1)) return false; } } } return true;}int main(){ int u, v; while(~scanf("%d%d", &n, &m)) { n *= 2; for(int i=0; i<n; ++i) G[i].clear(); while(m--) { scanf("%d%d", &u, &v); u--; v--; G[u].push_back(v^1); G[v].push_back(u^1); } if(TwoSat()) { for(int i=0; i<n; i+=2) if(mark[i]) printf("%d\n", i+1); else printf("%d\n", (i^1)+1); } else printf("NIE\n"); } return 0;}
0 0
- hdu1814 Peaceful Commission,2-sat
- hdu1814 Peaceful Commission 2-sat
- hdu1814 Peaceful Commission(2-sat)
- hdu1814 Peaceful Commission 2-SAT
- [HDU1814]Peaceful Commission(2-SAT)
- hdu1814 Peaceful Commission(2-sat)
- 【2-SAT字典序最小解】HDU1814[Peaceful Commission]题解
- HDU1814 Peaceful Commission —— 2-sat 染色法
- HDU1814 Peaceful Commission
- hdu1814 Peaceful Commission--dfs
- 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)
- [数位dp] spoj 10738 Ra-One Numbers
- Oracle 在dos命令下导出导入
- Hugepages你用了吗?----原理概念篇
- android application类和全局数据使用
- HQL QBC
- hdu1814 Peaceful Commission,2-sat
- Android Volley完全解析(一),初识Volley的基本用法
- Spring 3之MVC & Security简单整合开发(三)
- JAVA位元算的应用
- 屏幕适配
- android中所有颜色代码 Android 颜色对照表
- android实现home键效果、将当前app推到后台
- 微信公众号开发(公交线路查询-JAVA
- Redis的WEB界面管理工具phpRedisAdmin