首页 > 代码库 > 【2-SAT】URAL - 2089 - Experienced coach

【2-SAT】URAL - 2089 - Experienced coach

题意:给出n对点a,b  要求从没对点中选出一个,且最终选出的点n个数不能存在相同的。输入数据满足每种数最多出现3次,最少出现1次

思路:第i对点的编号2*i, 2*i+1,   因为每个数最多出现3次,那么完全可以枚举每个数,然后相同的数之间的编号建立关系(?a Λ ?b 为真,表示这两个编号不能同时选),

然后同一对的俩编号之间也有关系(a xor b为真,代表a和b必须选且只能选一个,a xor b 可以写成 (a V b) Λ (?a V ?b)),这样跑完twosat就能得到一个满足情况的解或无解。

部分引用自 http://www.cnblogs.com/orchidzjl/p/5814116.html

【2-SAT】URAL - 2089 - Experienced coach