码迷,mamicode.com
首页 > 其他好文 > 详细

COGS-313-和平委员会-POI2001-2-SAT

时间:2015-04-09 09:04:06      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:2-sat

描述

根据宪法,Byteland民主共和国的公众和平委员会应该在国会中通过立法程序来创立。 不幸的是,由于某些党派代表之间的不和睦而使得这件事存在障碍。


此委员会必须满足下列条件:

每个党派都在委员会中恰有1个代表,
如果2个代表彼此厌恶,则他们不能都属于委员会。
每个党在议会中有2个代表。代表从1编号到2n。 编号为2i-1和2i的代表属于第I个党派。

任务

写一程序:

从文本文件读入党派的数量和关系不友好的代表对,
计算决定建立和平委员会是否可能,若行,则列出委员会的成员表,
结果写入文本文件。
输入

在文本文件的第一个行有2非负整数n和m。 他们各自表示:党派的数量n,1 < =n < =8000和不友好的代表对m,0 <=m <=20000。 在下面m行的每行为一对整数a,b,1<=a

输出

如果委员会不能创立,文本文件中应该包括单词NIE。若能够成立,文本文件SPO.OUT中应该包括n个从区间1到2n选出的整数,按升序写出,每行一个,这些数字为委员会中代表的编号。如果委员会能以多种方法形成,程序可以只写他们的某一个。


分析

  • 2-SAT问题的建图
  • 刚开始写没注意到的地方是, 建图应 u->v‘, v->u‘ 不能 u‘->v, v‘->u. 因为前者表示 如果选了 u 那么只能选 v‘, 而后者中如果选了 u‘, 那么选不选 v 是没有关系的. 所以这样的限制条件就是错的.
  • O(nm)


COGS-313-和平委员会-POI2001-2-SAT

标签:2-sat

原文地址:http://blog.csdn.net/qq_21110267/article/details/44945035

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!