在做这题之前还不知道什么是 2-SAT 的。折腾了大半天的,终于写完了。这道题我是 2 次 AC, 问题出在判断剪刀石头布谁能赢的函数写错了……

有关 2-SAT 的资料网上挺多的,解决的方法可以是强连通分量,这道题重点在构图。网上有说每局状态用 6 个顶点代表的方法,也提到“官方”题解是用 2 个顶点的。[AMB'11]

我使用的是每局用两个顶点代表状态的方法,其实也没有多复杂,用了一些 swap 小技巧,就只分了 4 类讨论。

还有一个就是判断两个顶点是否属于同一个强连通分量的时候,我居然用了并查集,这是杀鸡用牛刀了。

本题源代码

数据生成器源代码

参考

原创文章,转载请注明来源:http://euyuil.com/3221/acm-icpc-2011-chengdu-eliminate-the-conflict/