随笔分类 -  二分图—2-SAT

摘要:首先最直观的,列一排是罪犯一排不是罪犯,对于一个条件u说v(0是1否)f罪犯,如果u不是,那么vf罪犯;如果u是,枚举他说谎的一条wg罪犯,令w(g^1)罪犯连其他条的vf 但是这样有个电度数方,会炸 考虑前缀和优化建图,在原来两排下面再接上两排表示这个人说这条以及这条之前没有/有说过谎,pr[u] 阅读全文
posted @ 2019-05-01 21:29 lokiii 阅读(332) 评论(0) 推荐(0)
摘要:用read()会挂 二分半径,显然最优的是所有原都用这个最小半径,然后2 SAT把相交的圆建图,跑tarjan判一下可行性即可 阅读全文
posted @ 2018-11-20 09:41 lokiii 阅读(209) 评论(0) 推荐(0)
摘要:振り返り方、教えて頂戴よ 阅读全文
posted @ 2018-11-19 15:29 lokiii 阅读(145) 评论(0) 推荐(0)
摘要:举手招云入怀袖 南岳既立我则来游 阅读全文
posted @ 2018-11-19 08:45 lokiii 阅读(96) 评论(0) 推荐(0)
摘要:ねえ、あいをさけぶのなら あたしはここにいるよ 阅读全文
posted @ 2018-11-18 22:01 lokiii 阅读(158) 评论(0) 推荐(0)
摘要:梧桐顶凤有尖爪利吻而不施 冲碧霄一鸣则群禽皆飞至 阅读全文
posted @ 2018-11-18 18:43 lokiii 阅读(183) 评论(0) 推荐(0)
摘要:脑补一下给出的图:一个环,然后有若干连接环点的边,我们就是要求这些边不重叠 考虑一下不重叠的情况,两个有交边一定要一个在环内一个在环外,所以把相交的边连边,然后跑黑白染色看是否能不矛盾即可(可能算个2 SAT?) cpp include include include using namespace 阅读全文
posted @ 2018-09-15 08:40 lokiii 阅读(164) 评论(0) 推荐(0)
摘要:好久没写2 SAT了啊,还以为是网络流 设点x为选,x'为不选,因为一头牛至少要满足一个条件,所以对于牛条件的两个点,选了一个不符合的点,就要选另一个符合的点,这样连两条边 然后枚举所有议案的选和不选点,从当前枚举的点出发,dfs一遍,把经过的点都打上标记,然后判断当前枚举的点是否合法(没有一个议案 阅读全文
posted @ 2018-05-06 20:28 lokiii 阅读(130) 评论(0) 推荐(0)
摘要:枚举从大到小s1,二分s2(越大越有可能符合),2 SAT判断,ans取min 思路倒是挺简单的,就是二分的时候出了比较诡异的问题,只能二分s2的值,不能在数组上二分... 有个优化,就是当不是二分图的时候退出枚举,这个用并查集染色维护 cpp include include include inc 阅读全文
posted @ 2018-04-24 16:27 lokiii 阅读(324) 评论(0) 推荐(0)
摘要:UOJ和洛谷上能A,bzoj 8ms即WA,现在也不是知道为啥……~~因为我太弱了~~ 先看数据范围发现d非常小,自然想到了状压。 所以先假装都是只能跑两种车的,这显然就是个2 SAT问题了:对于x场没有hx的,直接跳过;对于y场没有hy的,连(x,x'),表示x不能选;对于都有的,连接(x,y), 阅读全文
posted @ 2018-03-19 14:35 lokiii 阅读(254) 评论(3) 推荐(0)