2-SAT基础题目。

 1 /* 1814 */
 2 #include <iostream>
 3 #include <vector>
 4 #include <algorithm>
 5 #include <cstdio>
 6 #include <cstring>
 7 #include <cstdlib>
 8 using namespace std;
 9
10 #define MAXN 8005
11
12 vector<int> vc[MAXN*2];
13 bool visit[MAXN*2];
14 int S[MAXN*2], top;
15 int n, m;
16
17 bool dfs(int u) {
18     if (visit[u^1])    return false;
19     if (visit[u])    return true;
20
21     visit[u] = true;
22     S[top++] = u;
23     for (int i=0; i<vc[u].size(); ++i) {
24         if (!dfs(vc[u][i]))
25             return false;
26     }
27     return true;
28 }
29
30 int main() {
31     int ii, jj;
32     int i, j, k;
33     bool flag;
34
35     #ifndef ONLINE_JUDGE
36         freopen("data.in", "r", stdin);
37     #endif
38
39     while (scanf("%d %d", &n, &m) != EOF) {
40         k = n+n;
41         for (i=0; i<k; ++i)
42             vc[i].clear();
43         memset(visit, false, sizeof(bool)*k);
44         while (m--) {
45             scanf("%d %d", &i, &j);
46             --i;
47             --j;
48             ii = (i&1) ? i-1:i+1;
49             jj = (j&1) ? j-1:j+1;
50             vc[i].push_back(jj);
51             vc[j].push_back(ii);
52         }
53         flag = true;
54         for (i=0; i<k; i+=2) {
55             if (! (visit[i]||visit[i+1])) {
56                 top = 0;
57                 if (!dfs(i)) {
58                     while (top--)
59                         visit[S[top]] = false;
60                     if (!dfs(i+1)) {
61                         flag = false;
62                         break;
63                     }
64                 }
65             }
66         }
67         if (flag) {
68             for (i=0; i<k; ++i)
69                 if (visit[i])
70                     printf("%d\n", i+1);
71         } else {
72             puts("NIE");
73         }
74     }
75
76     return 0;
77 }

转载于:https://www.cnblogs.com/bombe1013/p/4335831.html

【HDOJ】1814 Peaceful Commission相关推荐

  1. 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 ...

  2. HDOJ 1814 Peaceful Commission

    经典2sat裸题,dfs的2sat能够方便输出字典序最小的解... Peaceful Commission Time Limit: 10000/5000 MS (Java/Others)    Mem ...

  3. 【HDOJ】4602 Partition

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=4602 [报告] 直接贴上标程解题报告:(虽然有些纠结,试一下就弄通了..) Problem C. Par ...

  4. 【HDOJ】4602 Partition_天涯浪子_新浪博客

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=4602 [报告] 直接贴上标程解题报告:(虽然有些纠结,试一下就弄通了..) Problem C. Par ...

  5. 【HDOJ】1008 Elevator_天涯浪子_新浪博客

    [题目] http://acm.hdu.edu.cn/showproblem.php?pid=1008 [报告] 这是我在HDOJ里看到的最水的题目,至少目前为止. 题目里已经讲得很清楚了,模拟就能过 ...

  6. 【HDOJ】1022 Train Problem I_天涯浪子_新浪博客

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=1022 [报告] 模拟,直接模拟一个栈的运行就行了. [程序] // Task: 1022 Train P ...

  7. 【HDOJ】1003 Max Sum_天涯浪子_新浪博客

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=1003 [报告] 既然是子区间加和问题,可以用减法来处理.比如求[5..10]的和,可以直接用[1..10 ...

  8. 【HDOJ】4768 Flyer_天涯浪子_新浪博客

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=4768 [报告] 题目中已经说了,保证最多出现一个奇数,所以可以用异或的想法.把所有的数异或起来,如果最后 ...

  9. 【HDOJ】4699 Editor_天涯浪子_新浪博客

    [题目] http://acm.hdu.edu.cn/showproblem.php?pid=4699 [报告] 模拟题吧,本身不是很难. 最初的想法是用Splay tree写,然后疯掉了.苏牛说2B ...

  10. 【HDOJ】4704 Sum_天涯浪子_新浪博客

    [题目] http://acm.hdu.edu.cn/showproblem.php?pid=4704 [报告] S(K)显然就是N的K正整数划分数.所以SUM{S(K),1<=K<=N} ...

最新文章

  1. android 蓝牙 不休眠_全新便携蓝牙键盘 雷柏XK100带来高效办公新体验
  2. 新版中青——青龙羊毛
  3. [攻防世界 pwn]——time_formatter(内涵peak小知识)
  4. IncompatibleClassChangFound interface org.apache.hadoop.mapreduce.JobContext, but class was expected
  5. QT中的QTableView+QTableWidget
  6. 网站需要密码登录访问php源码
  7. Lampp Xampp配置SSL及自动http重定向https
  8. C语言中指针的基类型,c – 将指针从一种基类型转换为另一种基类型
  9. 【HDOJ】1261 字串数【组合数学--排列+代数】
  10. airplay协议开发第1部(搭建测试环境)
  11. PEmicro GDB Launch Failure : Could not bind socket.
  12. 【转载】装机知识显卡篇,一篇文章让小白透彻的了解显卡
  13. 万兆铜缆--七类双绞线--光纤等内容
  14. MySQL 事务隔离级别,读现象,MVCC
  15. 微信小程序云开发之cms开发
  16. ping回显无法访问目的主机问题解决过程
  17. warning: waiting for transaction lock on /var/lib/rpm/.rpm.lock
  18. 宅公司 宅家里 养生锻炼必备的少林八段锦
  19. 王牌代码静态测试工具Helix QAC 2022.2 中的新增功能(1)
  20. Stacked Autoencoders

热门文章

  1. 拼接、比较与计算——哥德尔读后之十四
  2. win10输入法突然变繁体解决办法
  3. 【转载】Python 数据皮尔逊相关性分析
  4. 视频学习前端的经验之谈
  5. 企业邮箱哪个品牌最好用?10年hr的经验分享
  6. 极客时间前端进阶特训营winter、杨村长、然叔、高少云,《精通React》大专栏,React低代码项目,前端算法实战,杨村长Vue3开源组件库实战(Vue3+Vite+VitePress+TSX+T
  7. vue图片时间轴滑动_vue 写的时间区间拖动控件
  8. git仓库创建及上传
  9. 【HTML】3.Form表单
  10. js 除了自己获取其他所有兄弟节点