
2-SAT
EMber _
人但有追求,世界亦会让路。
展开
-
bzoj2199 [Usaco2011 Jan]奶牛议会 2-SAT
题意比较短就不说了。 这题虽然直接暴力枚举就好,但是我这种刚学2-SAT还是有点吃力,,模型没转化出来= = 我们把议会方案数看作点对,然后把奶牛的意见看作冲突点,然后直接暴力就好了。。。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<cmath>#define fo(i,a,原创 2017-06-17 20:02:31 · 469 阅读 · 0 评论 -
poj 2723 Get Luffy Out 二分+2-SAT
题目大意:有n对钥匙,每一对拿了一个另外一个就会消失,有m扇门,每一扇门有两个锁,分别对应2*n把钥匙,求按顺序最多可开多少门。 比较明显的模型呢,先把对立边记录下,然后直接二分用2-sat判断,毕竟2-sat不能直接求出答案只能判断是否可行。 二分的时候连前mid扇门就好啦。#include<cstdio>#include<cstring>#include<algorithm>#incl原创 2017-06-23 22:04:02 · 802 阅读 · 0 评论 -
POJ 3207 Ikki's Story IV - Panda's Trick 2-SAT
算是比较经典的2-SAT模型了吧。 题意:给你圆上顺序排列的n个点,点之间连线必须完全在圆内或外,问有没有可能不相交。 2-sat直接上,连边的时候直接把a1#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int原创 2017-06-24 09:29:04 · 233 阅读 · 0 评论 -
bzoj1823[JSOI2010]满汉全席 2-SAT
很简单的2-SAT.。。我一开始觉得题目好长啊然后感觉好像就是个模板题结果我直接套模板真就过了。。 就是模板。 至于连边跟模板一样是因为如果最优方案,一个评委明显只能满足两个中的一个(重复不算)。#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#defin原创 2017-06-24 11:22:52 · 351 阅读 · 0 评论 -
bzoj1997[Hnoi2010]Planar 2-SAT
跟poj3207的思想差不多,就是圆上的两条边如果相交,一定得有一条在圆外,然后就是2-SAT的模型了。 要注意一下直接上2-SAT会爆炸,加一个剪枝,就是平面图要求边数<=3n-6#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#define fo(i,a,b) for(int i=a;i<=b;原创 2017-08-02 11:14:59 · 257 阅读 · 0 评论