
2-SAT
Bahuia
软件工程博士
展开
-
CF - 776D 2-SAT
题意: n个门,每个门有一个初始的状态,或开或锁,有m个开关,每个开关都能控制若干门的状态,题目保证每个门一定会受到两个开关的影响。问是否有可能让所有门都开。 思路: 2-SAT,对于开关来考虑,每个开关要么开要么关,两种状态true和false,设xi为true就是开关i打开,xi为false就是开关i关闭,对每个门来说,如果一开始就是打开,那么变化量就要为0,若这个门受到开关i和j的控制原创 2017-02-24 10:05:03 · 640 阅读 · 0 评论 -
EOJ - 12 2-SAT
题意:题目链接:http://123.57.161.63:8001/problem/12/ 给出一个无向图,每次选择一个点u,将与u相连的边都删去,然后在原先互不相连的u和v之间加上边(u,v)。问最后是否可以构成一个完全图。思路:可以发现每个点最多只会被选择一次,因为选择两次和不选没有区别。 如果将图表示成邻接矩阵,每次选择点x,其实就是将第x行和第x列01反转。那对于矩阵的上的每个点(x,y原创 2017-04-08 15:34:57 · 388 阅读 · 0 评论 -
HDU 4421 2-SAT
题意:题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=4421 按照题目所示的转移方式,问是否存在一个a数组可以转译成b矩阵。思路:因为都是位运算,b[x][y]只会由两个bool变量影响,其实只要将每个数字按位拆开来进行2-SAT即可。#include <bits/stdc++.h> using namespace std; const原创 2017-10-13 16:04:59 · 836 阅读 · 0 评论 -
Gym 101201F 2-SAT
题意:题目链接:http://codeforces.com/gym/101201/attachments 给出一个方格,其中若干点上有灯,每盏灯可以选择在一行或者一列照亮以自己为中心长度为2*r+1的区间,但是要让同一行之间以及同一列之间的灯不能有照亮的重叠区域,问是否可行。思路:每盏灯有两种选择,2-SAT裸题。代码:#include <bits/stdc++.h> using namespac原创 2017-10-13 15:44:18 · 628 阅读 · 0 评论