2-sat
霜刃未曾试
这个作者很懒,什么都没留下…
展开
-
LightOJ 1251 - Forming the Council 2-sat输出任意一组解
题目:http://www.lightoj.com/volume_showproblem.php?problem=1251题意:有m个候选人,有n个选民,每个选民投票时有两个选择,问能不能满足所有选民的至少一个选择,如果可以,输出当选的人,多解输出任意一组思路:此题中两个选择是或的关系,简单题#include <iostream>#include <cstdio>#include <cstrin原创 2016-10-08 20:07:41 · 550 阅读 · 0 评论 -
POJ 3905 Perfect Election 2-sat判断可行解
题目:http://poj.org/problem?id=3905题意:n个人参加选举,现在有个民意调查,有m个回复,每个回复有两个选择a b,如果a是正数,代表希望a当选,负数则希望-a不当选,两个选择至少满足一个,问有没有一个选举结果可以满足民意调查思路:建图很简单,只有OR的关系,不再说,具体看代码,跟lightoj有道题基本一样#include <iostream>#include <cs原创 2016-10-20 20:50:37 · 438 阅读 · 0 评论 -
HDU 4421 Bit Magic 2-sat判断可行解
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4421题意:给定一个矩阵b,问问在题目中给定的伪代码下,是否存在a数组思路:刚开始我把每个数化成31位二进制一起搞了,果断GG了。可以把每次统一只取矩阵中数字的某一位二进制,这个二进制显然是0或1,那么就可以根据三种运算符建图判断是否有可行解,这样判断31次就可以了#include <iostream>#i原创 2016-10-20 20:10:43 · 371 阅读 · 0 评论 -
POJ 3207 Ikki's Story IV - Panda's Trick 2-sat
题目:http://poj.org/problem?id=3207题意:给定一个圆,圆上有按顺序分部的0至n-1共n个点,现在连接m对点,这m对点不会出现重复,连线可以在圆内或者圆外,问连线会不会有相交思路:两条交叉的连线是矛盾关系,只能一条在圆内一条在圆外,于是把连线看成点,连四条边(i, ~j)(j, ~i)(~i, j)(~j, i),判断i和~i和有没有在一个强连通分量内#include <原创 2016-10-08 12:33:11 · 485 阅读 · 0 评论 -
POJ 2723 Get Luffy Out 二分 + 2-sat
题目:http://poj.org/problem?id=2723题意:有2n把钥匙,分成n对,每对只能使用其中一把,有m扇门,每扇门上有两个锁,每个锁都有对应的钥匙,要打开第i扇门才能去开第i+1扇门,求最多能打开多少扇门思路:二分枚举结果,然后2-sat判定是否可行,每对钥匙只能存在一个,每扇门两个锁,不打开一个,必定打开另一个#include <iostream>#include <cstd原创 2016-10-07 16:24:45 · 371 阅读 · 0 评论 -
HDU 3715 Go Deeper 二分 + 2-sat
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3715题意:给定一段递归伪代码,问执行这段伪代码递归的最深层数思路:二分枚举答案用2-sat判定是否可行。具体建图如下:如果c[i] == 0,那么a[i] OR b[i],如果c[i] == 1,那么(a[i] AND b[i]) OR (~a[i] AND ~b[i]),如果c[i] == 2,那么 N原创 2016-10-07 11:18:04 · 507 阅读 · 0 评论 -
HDU 3622 Bomb Game 二分 + 2-sat
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3622题意:一个游戏有n轮,每轮给出两个点的坐标,表示以这两个点之中的一个为圆心画一个圆,半径自定,但要求n轮后画出的n个圆之间不能相交,求半径最小的那个圆的半径最大是多少思路:首先最大化最小值,这是二分的典型套路,我们二分半径,然后对于不同组的两点,如果他们之间距离小于2倍的枚举值,那么就是两者只能存在一个原创 2016-10-07 09:53:14 · 337 阅读 · 0 评论 -
POJ 3683 Priest John's Busiest Day 2-sat输出任意一组解
题目:http://poj.org/problem?id=3683题意:有一个牧师,要去主持婚礼,现在这一天有n场婚礼,每场婚礼都有一个时间段和持续时间,每场婚礼只能在其时间段的开端和末尾举行,问牧师能不能主持所有的婚礼,若能输出YES并输出每场婚礼举办的具体时间,否则输出NO思路:每场婚礼时间段的开端和末尾看成点,然后判断任意两场婚礼的开端末尾是否冲突,冲突则建边,主要是判断区间的冲突问题总结:这原创 2016-10-19 16:45:18 · 372 阅读 · 0 评论 -
HDU 1824 Let's go home 2-sat判断可行解
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1824题意:Problem Description 小时候,乡愁是一枚小小的邮票,我在这头,母亲在那头。 —— 余光中 集训是辛苦的,道路是坎坷的,休息还是必须的。经过一段时间的训练,lcy决定让大家回家放松一下,但是训练还是得照常进行,lcy想出了如下回原创 2016-10-06 10:47:35 · 486 阅读 · 0 评论 -
POJ 3648 Wedding 2-sat
题目:http://poj.org/problem?id=3648题意:有n对夫妻参加婚礼,新郎新娘分别坐在桌子的两侧,要求新娘看到的那一侧(也就是新郎所在一侧)不能有一对夫妻,而且不能有通奸关系,然后输出新娘所在这一侧的人(没有关系限制)思路:可以发现新郎这一侧就是基础的2-sat问题,于是我们求新郎这一侧的人,连边建图,很简单,求出结果后输出跟新娘染成一个眼神的人。注意一点,因为我们求得这个解必原创 2016-10-05 16:29:35 · 527 阅读 · 0 评论 -
POJ 3678 Katu Puzzle 2-sat简单题
题目:http://poj.org/problem?id=3678题意:给定一个有向图,每条边有一个操作符(AND || OR || XOR)和一个值(0或1),问能不能给每个点赋值(0或1),使得任一条边连接的两个点的值通过边上的运算符得到的值等于边上的值思路:明显的2-sat题目AND 当c=0时,连边(a,~b)(b,~a);当c=1时,连边(a,b)(b,a)(~a,a)(~b,b)OR原创 2016-10-18 12:03:57 · 421 阅读 · 0 评论 -
HDU 3062 Party 2-sat
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3062题意:Problem Description 有n对夫妻被邀请参加一个聚会,因为场地的问题,每对夫妻中只有1人可以列席。在2n 个人中,某些人之间有着很大的矛盾(当然夫妻之间是没有矛盾的),有矛盾的2个人是不会同时出现在聚会上的。有没有可能会有n 个人同时列席?Input n: 表示有n对夫妻被邀请原创 2016-10-04 11:16:59 · 348 阅读 · 0 评论 -
HDU 1814 Peaceful Commission 2-sat(字典序最小的解)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1814题意:有n个党派每个党派有2人,现在要选n个议员,要使每个党派都入选一人,然后有些人不能同时入选。求一个字典序最小的解思路:直接暴力枚举DFS,首先将所有的点都置为为染色,然后我们从第一个点开始DFS染色,我们先尝试将i染成红色(答案中的颜色1),将~i染成蓝色(2),然后dfs i的所有后继并染色,如原创 2016-10-03 20:59:50 · 868 阅读 · 0 评论 -
HDU 4115 Eliminate the Conflict 2-sat
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4115题意:A和B玩剪刀石头布,共n轮,A想要赢得游戏,那么每一轮都不能输给B(即要么每一轮都赢B或者和B平局),现已知B每轮出的结果,然后问A能不能赢得游戏思路:自己写的1A,就是太麻烦了,之后看了网上的代码,果然精简,都说说吧。 我自己写的是这样的: 把每轮的三种结果作为点,那么就有3*n个点,根据B原创 2016-10-10 13:34:12 · 328 阅读 · 0 评论 -
POJ 2749 || HDU 1815 Building roads 2-sat
题目:[http://poj.org/problem?id=2749](http://poj.org/problem?id=2749)题意:有两个中转站并给出坐标,有n个牛舍并给出n个坐标,要把n个牛舍连接到两个中转站上使任意两个牛舍想通。每个牛舍里有一头牛,然后有A对牛之间是敌对关系,着意味着他们不能连接在同一个中转站上,有B对牛之间是朋友关系,意味着他们必须连在同一个中转站上,问满足上述条件的原创 2016-10-09 20:15:05 · 321 阅读 · 0 评论 -
POJ 2296 Map Labeler 2-sat + 矩阵相交
题目:http://poj.org/problem?id=2296题意:有n个点,要用n个正方形标签贴住n个点,要求点必须在标签的上边或下边的中点,且标签不能相互覆盖,问标签的最大边长为多少思路:枚举两点,点在边上的位置共有上上,上下,下上,下下这四种情况,然后去判断每种情况下两个标签是否相交,即判断矩形相交,若相交,则不能共存#include <iostream>#include <cstdio原创 2016-10-21 10:39:32 · 412 阅读 · 0 评论