题意:给出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
时间: 2024-10-05 17:33:08