2-SAT
文章平均质量分 76
AcDora
这个作者很懒,什么都没留下…
展开
-
La3211 Now or Later(2-SAT判定+二分法)
题目: n 架飞机,每架飞机的降落时间有两个选择,一个为早点降落,另一个为晚点降落;求两架飞机降落时间差的最小值的最大值(就是怎么安排,使得所有飞机降落的时间差的最小值尽量大)输入:一个n,代表飞机数目;接下来n行,表示每架飞机降落的两个时间分析:最小值尽量大,用二分查找;对于查到一个最小值t,如果任意两个时间差小于t,那么这两架飞机就不能同时降落,由此产生了条件就是时间差代码:#原创 2013-02-13 00:07:11 · 867 阅读 · 0 评论 -
CF 272E Dima and Horses(2-SAT变形)
题目大意:有n个点,每个点都最多有三个敌对点,要将这个n个点分成两组,而且每个组内的每个点,最多有一个敌对点和它在同一组里面。在第一组设为0, 第二组设为1;然后输出最后分配方案。分析:以节点i为例, i有三个敌对点,如果i在0组,那么与i敌对的三个点中的两个就一定要在1组。给每个点赋值为1或0,然后使得所有节点都满足前述条件。很显然就是2-SAT问题。因为每个点虽多有3个敌对点,所以,总是有原创 2013-02-14 11:37:09 · 1112 阅读 · 3 评论 -
HDU 3622 Bomb Game( 二分查找+2-SAT )
题目大意:在一个平面上,放炸弹。每次给出两个位置,在这两个位置里面选择一个放炸弹。一共给出n组位置,如前面所述,每组有个两个位置。然后,对于每个炸弹,都有一个power,即爆炸时的破坏的半径,这个半径是可以控制的,几就是说,以所选的位置为圆心的半径可以控制的圆。要求圆和圆之间不能有交集,可以相切。求解,满足n个圆无交集的最大的半径是多少?题目分析:首先,是这个半径应该是多少,其实要求n原创 2013-03-20 14:43:53 · 1021 阅读 · 0 评论 -
POJ 3207 Ikki's Story IV - Panda's Trick(2-SAT判定)
题目:在一个圈上,数字按照顺时针方向,从0-n。有m条边,每条边连接一对点,这每条边可以画在圆的外侧,也可以画在圆的内侧,但是不能相交。输入会给出点的个数N,和边的条数M,求解知否有可能满足所有边不相交的条件题目分析:开始的时候,我没有反应过来是2-SAT的题目。但是题目中有一点是很明显的,那就是边的位置只有两种,一种圆内,一种圆外,那么两条边如果在圆的同侧(同为内侧或外侧)相交的原创 2013-03-20 16:49:52 · 915 阅读 · 0 评论 -
POJ 2296 Map Labeler ( 2-SAT判定 + 二分查找 )
这个类型的题目很典型,就是 二分+2sat题目:在一个坐标系上,有n个点,每个点贴上标签,标签是正方形的,粘贴的位置要使得点正好在标签的上边中间,或者下边中间,标签之间不能重合,求解,标签的最大边长是多少?分析:这道题和前天做的拿到反炸弹的题目很类似,都是用二分查找找最大值,然后一个一个用2-sat判断可行性这道题的代码,我写得实在太憋屈了,犯了很低级的错误,简直就是一个马虎神。最原创 2013-03-23 13:43:50 · 972 阅读 · 0 评论 -
POJ 3678 Kath Puzzle (2-sat)
首先要说,写代码,要仔细;其次要说,在poj,当保证了自己代码和算法几乎没错误,思路也正确的时候,还超时,检查一下你提交的编译类型是不是G++或者是GCC,如果是,改成C++试试!这道题很典型的2-sat!关于这个道题,网上已经有很多解释了,在这里不再赘述!代码如下:(个人认为,tarjan比那个konaba……的算法更简单一些)#include #include #i原创 2013-05-02 22:36:49 · 635 阅读 · 0 评论 -
POJ 2723 Get Luffy Out (2-sat)
这道题刚开始读错了题目,以为是每层有两个门,后来再仔细看,还好,是一个门,那么就是比较简单的也是比较典型的2-sat了!首先,先总结一下2-sat的解题思路:根据我做的比较有限的题目,就是感觉一定要去找条件,找矛盾!有的题目是要求最优解,所以要结合条件来建图,然后用2-sat判定可行性,用二分来找最优解!有的题目比较简单就是直接判断是否解。此外,还有要输出最优解的情况,这个我还没有做到输出方案原创 2013-05-03 22:29:32 · 899 阅读 · 0 评论