题目链接
方法:2-SAT
题目分析
题目大意
这里有1到N个人正在进行议员选举,每个人有2种结果,选上(0),未选上(1).现在的问题是,有M个选民的议员,结果必须符合这M条意愿,问你是否存在这种选举结果.
注意,每个选民的意愿要求两个人,两个人分别选上或选不上,选上的话就是+x
,不选上的话是-x
,两个人之间的关系是或的关系
解析
用这道题来入门2-SAT算法好了。
2-SAT解决的是一系列双满足条件的问题,通过建立有向图,然后DFS跑出结果。
add_clause(x, xval, y, yval)
表示的是(x == xval) || (y == yval)
的关系。
代码
1 |
|