hdu1814 Peaceful Commission,2-sat
题目大意:一国有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);elseprintf("%d\n", (i^1)+1);} else printf("NIE\n");}return 0;
}
hdu1814 Peaceful Commission,2-sat相关推荐
- hdu1814 Peaceful Commission 2-sat
hdu1814 Peaceful Commission 链接 emm,三个链接,三个都不同 loj随便做 hdu字典序最小 bzoj求合法方案数 思路 loj是任意一组解,直接跑tarjan然后判. ...
- hdu1814 Peaceful Commission 2-SAT建图入门
题面 The Public Peace Commission should be legislated in Parliament of The Democratic Republic of Byte ...
- hdu1814 Peaceful Commission
题目链接:戳我 菜得不行了,直到今天才刚开始学2-SAT.... 2-SAT的模板,因为是求最小字典序,所以只能用上限为\(O(nm)\)的最暴力的方法来做... #include<iostre ...
- [hdu-1814] Peaceful Commission题解
题目传送门 题意解析:题目就是给了你n组,每一组有两个人,然后在给你m组关系,关系x,y表示x和y不能在放一起,然后让你在每组中各取出一个人,找出字典序最小的一组方案(原题是任意一组方案,但是hdu上 ...
- HDU1814 Peaceful Commission 2SAT
http://acm.hdu.edu.cn/showproblem.php?pid=1814 输出最小字典序. 1 #include<bits/stdc++.h> 2 const int ...
- 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 ...
- HDOJ 1814 Peaceful Commission
经典2sat裸题,dfs的2sat能够方便输出字典序最小的解... Peaceful Commission Time Limit: 10000/5000 MS (Java/Others) Mem ...
- 2023年申请美国大学,需要SAT/ACT成绩吗?
受疫情影响,2021 和 2022 年申请美国大学时,许多大学都放宽了SAT/ACT门槛,不强行要求学生提交标化成绩.今年3月,理工大牛院校 MIT 率先打破了这个局面,宣布恢复 SAT/ACT 标化 ...
- hdu 1814 Peaceful Commission 题解
题目传送门 题目大意: 有 nnn 个团队,每个团队两个人,现在要组成一个 nnn 人的组织,要求每个团队中只能有 111 个人在组织里,给出 mmm 组憎恶关系,相互憎恶的两人不能同时在组织里,给出 ...
最新文章
- 笨办法学C 练习22:栈、作用域和全局
- SAE下修改models里面字段
- js一些稀奇古怪的写法-带你装逼带你飞
- C语言进阶--Day2
- python写一个类方法_Python基础|类方法的强制重写与禁止重写
- 任务01——谈谈对参与工作室的预期
- 在线rss阅读聚合器lilina-0.7安装笔记
- Codeforces round 396(Div. 2) 题解
- Selenium 自动化测试基础知识
- Win7系统无法复制粘贴怎么解决
- mysql 根据总分排名
- linux 邮件文件名 病毒,文件型File/Macro病毒的捕获
- 指纹和人脸识别 AI 总结
- 让Editplus成为强大的PHP编辑器
- 转载:wps怎么制作半圆形时间轴? wps彩色时间轴的制作方法
- VPS性能优劣与使用
- opencv实战4-图像滤波
- JAVA面试题大全(part_1)
- birthday日期类型转化
- 梯度下降计实例计算(二维)