HDU 1814 Peaceful Commission
2-SAT,输出字典序最小的解,白书模板。
//TwoSAT输出字典序最小的解的模板 //注意:0,1是一组,1,2是一组..... #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<algorithm> using namespace std;const int maxn=8000+5; int m;struct TwoSAT {int n;vector<int> G[maxn*2];bool mark[maxn*2];int S[maxn*2],c;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 init(int n){this->n=n;for(int i=0;i<n*2;i++) G[i].clear();memset(mark,0,sizeof mark);}void add_clause(int x,int y){G[x].push_back(y^1);G[y].push_back(x^1);}bool solve(){for(int i=0;i<2*n;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;}//输出字典序最小的解void Printf(){for(int i=0;i<n;i++){if(mark[2*i]) printf("%d\n",2*i+1);else printf("%d\n",2*i+1+1);}} };int main() {TwoSAT T;while(~scanf("%d%d",&T.n,&m)){T.init(T.n);for(int i=0;i<m;i++){int a,b;scanf("%d%d",&a,&b);a--;b--;T.add_clause(a,b);}if(T.solve()) T.Printf();else printf("NIE\n");}return 0; }
转载于:https://www.cnblogs.com/zufezzt/p/4906130.html
HDU 1814 Peaceful Commission相关推荐
- HDU 1814 Peaceful Commission / HIT 1917 Peaceful Commission /CJOJ 1288 和平委员会(2-sat模板题)...
HDU 1814 Peaceful Commission / HIT 1917 Peaceful Commission /CJOJ 1288 和平委员会(2-sat模板题) Description T ...
- HDU 1814 Peaceful Commission(2-SAT)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1814 题意: 要建立一个和平委员会,要满足以下条件: 每个党派都在委员会中恰有1个代表, ...
- [HDU 1814] Peaceful Commission
一.题目 点此看题 二.解法 这就是2-sat\text{2-sat}2-sat带字典序最小解的经典问题,时间复杂度O(n2)O(n^2)O(n2),还是结合代码讲更好: #include <c ...
- hdu 1814 Peaceful Commission 题解
题目传送门 题目大意: 有 nnn 个团队,每个团队两个人,现在要组成一个 nnn 人的组织,要求每个团队中只能有 111 个人在组织里,给出 mmm 组憎恶关系,相互憎恶的两人不能同时在组织里,给出 ...
- HDOJ 1814 Peaceful Commission
经典2sat裸题,dfs的2sat能够方便输出字典序最小的解... Peaceful Commission Time Limit: 10000/5000 MS (Java/Others) Mem ...
- hdu1814 Peaceful Commission 2-sat
hdu1814 Peaceful Commission 链接 emm,三个链接,三个都不同 loj随便做 hdu字典序最小 bzoj求合法方案数 思路 loj是任意一组解,直接跑tarjan然后判. ...
- [2-sat专练]poj 3683,hdu 1814,hdu 1824,hdu 3622,hdu 4115,hdu 4421
文章目录 Priest John's Busiest Day code Peaceful Commission code Let's go home code Bomb Game code Elimi ...
- HDU1814 Peaceful Commission 2SAT
http://acm.hdu.edu.cn/showproblem.php?pid=1814 输出最小字典序. 1 #include<bits/stdc++.h> 2 const int ...
- hdu1814 Peaceful Commission 2-SAT建图入门
题面 The Public Peace Commission should be legislated in Parliament of The Democratic Republic of Byte ...
最新文章
- MySQL和PostgreSQL数据库安全配置
- AWS ML deploy platform
- python编程if语法-二、python 语法之变量赋值与if(if else)
- POJ-1724 深搜剪枝
- Larbin 安装遇到的问题(fedora)
- 二分搜索及其扩展(循环递增数组的搜索)
- Timer和TimerTask详解
- Bootstrap 响应式设计
- Linux 命令(138)—— nc 命令
- 643. 子数组最大平均数 I
- 2018双一流排名 计算机,2018年42所双一流大学本硕博录取人数排名,规模优势凸显!...
- 织梦搜索结果增加dede:type、dede:arclist、dede:channelartlist、dede:tag等标签支持
- 勒索病毒“WannaCry”之复现过程(永恒之蓝)
- windows下的diskpart指令修复U盘分区
- 扫雷网站推荐及游戏攻略
- 怎么重置imac_如何重置Mac Pro?四种重置Macbook Pro的方法
- JS 单引号、双引号与反引号的区别
- BEA-090403 Authentication for user admin denied
- Python数据可视化图表大全
- Bootstrap Table 中文文档(完整翻译版)
热门文章
- Image Pro Plus测量组织平均厚度
- C++构造与析构(18) - 静态对象(static object)何时销毁
- Windows下C/C++获取当前系统时间
- firefox 39 linux,Mozilla Firefox 39.0 Beta 4 发布下载
- 数据结构与算法(C++)– 堆排(Heap Sort)
- erlang精要(16)-匿名函数之sigmoid函数实现
- 自然语言处理「迷惑行为大赏」
- 很好很强大,这款AI开发神器的图像标注吊打labelme
- 考研初试成绩陆续公布,说说你的考研故事
- 【效率】NB,真PDF神处理工具!