图论:2-SAT
文章平均质量分 90
ProLightsfxjh
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #400 (Div. 1 + Div. 2, combined) D. The Door Problem 2-SAT、并查集
题意:每个门有且必须被2个开关所控制,一个开关可以控制多个门,给定n个门的初始状态和每个开关控制哪些门,问是否有方案打开一些开关使所有的门都为unlocked状态。 2-SAT、并查集 把由于每个门被2个开关控制,所以把门看成是边,把开关看成是点,每个开关有2种点,打开i和关闭i+m,从而变成一个经典的 2-SAT 问题。 一个门分别被last[r] 和 i控制,则 如果门是开的,则2个开关要么都关要么都开,_merge(last[r], i); _merge(last[r] + m, i + m); 否原创 2017-03-22 01:26:12 · 1027 阅读 · 0 评论 -
UESTC 1586 可以说是非常豹笑了 2-SAT+并查集
题意:n个数,m个关系,每个关系表示T==1则a、b两数相同,T == 0则a、b两数不同。 要求判断关系是否没有矛盾。 2-SAT+并查集 有一个大小为2*n的并查集, 如果a、b天相同,则把a和b,以及a+n和b+n,合并, 如果a、b天不同,则把a和b+n,以及a+n和b,合并, 然后i= 1 ~ n,扫一遍,如果 a和a+n在同一颗树中,则相矛盾, 因为不可能那天表情即一样又不一样,答案为NO, 反正为 YES 复杂度 O(2*n)原创 2017-05-16 19:38:06 · 1799 阅读 · 0 评论