[2-sat]HDU 1814——Peaceful Commission
来源:互联网 发布:游戏编程教学 编辑:程序博客网 时间:2024/05/21 10:50
题目传送门
题目概述
有n个党派,每个党派有两名成员且必须派出一名成员参加和平会议,给出m个不合的人,求字典序最小的方案。
解题思路
裸的2-sat,假设每个党派有成员
那么就形成了一个有向图,显然当
因为要求字典序最小的方案,所以O(NM)刷了。
#include<cstdio>#include<cstring>using namespace std;const int maxn=16005,maxm=40005;int lnk[maxn],son[maxm],nxt[maxm],n,m,tot,top,s[maxn];bool vis[maxn];void add(int x,int y){ nxt[++tot]=lnk[x];lnk[x]=tot;son[tot]=y;}bool DFS(int x){ if (vis[x^1]) return 0; if (vis[x]) return 1; vis[x]=1;s[++top]=x; for (int j=lnk[x];j!=-1;j=nxt[j]) if (!DFS(son[j])) return 0; return 1;}bool two_sat(){ for (int i=0;i<2*n;i+=2) if (!vis[i]&&!vis[i^1]){ top=0; if (!DFS(i)){ while (top) vis[s[top]]=0,top--; if (!DFS(i^1)) return 0; } } return 1;}int main(){ freopen("exam.in","r",stdin); freopen("exam.out","w",stdout); while (scanf("%d%d",&n,&m)==2){ memset(lnk,255,sizeof(lnk)); memset(vis,0,sizeof(vis)); tot=0; for (int i=1;i<=m;i++){ int x,y;scanf("%d%d",&x,&y); x--,y--; add(x,y^1);add(y,x^1); } if (two_sat()){for (int i=0;i<2*n;i++) if (vis[i]) printf("%d\n",i+1);} else printf("NIE\n"); } return 0;}
阅读全文
0 0
- [2-sat]HDU 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)
- 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-SAT (染色法)—— Peaceful Commission (HDU 1814)
- HDU 1814 Peaceful Commission(2-SAT:最小字典序)
- hdu 1814 Peaceful Commission 2-sat 按字典序输出
- HDU 1814 POI 2001 Peaceful Commission 2-SAT
- LINUX exec函数的使用
- 大富翁游戏(跳台阶)&&拼凑钱币(求和的可能性)&&最大矩形面积&&最长公共子串
- 免费打造个人网站,免费域名,免费空间,ftp使用,数据库等,免费就能搭建个人网站
- PHP魔术方法之序列化与反序列化技术
- 【Codeforces Round 169 (Div 2) E】【数据结构区间维护】Little Girl and Problem on Trees 大菊花树的距离性修改查询
- [2-sat]HDU 1814——Peaceful Commission
- Numpy模块
- http://hacker.duanshishi.com/?p=1780
- 存储器层次结构的四个问题
- 记一次sql慢查询
- Linux基础—命令的组成规则及其全拼单词
- IMU数据融合---待补充
- CSS实现垂直居中的常用方法
- 在 Angular 项目中添加插件 ng-bootstrap