![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论-2-SET
lab104_yifan
这个作者很懒,什么都没留下…
展开
-
UVA 1146 - Now or later(2-SET)
UVA 1146 - Now or later题目链接题意:n个飞机,每个飞机有一个早到时间和一个晚到时间,问怎么安排飞机,使得飞机到的间隔的最小值最大思路:二分答案,然后利用2-set去判断,如果两个飞机的两个时刻间隔比这个时刻小,那么就是表示不能同时满足这两个条件,就加一条xi^xj的边进去,然后利用2-SET判定一下代码:#include #includ原创 2014-08-30 15:26:36 · 1008 阅读 · 0 评论 -
HDU 1816, POJ 2723 Get Luffy Out(2-sat)
HDU 1816, POJ 2723 Get Luffy Out题目链接题意:N串钥匙,每串2把,只能选一把,然后有n个大门,每个门有两个锁,开了一个就能通过,问选一些钥匙,最多能通过多少个门思路:二分通过个数,然后对于钥匙建边至少一个不选,门建边至少一个选,然后2-sat搞一下即可。一开始是按每串钥匙为1个结点,可是后面发现数据有可能一把钥匙,出现在不同串(真是不合理原创 2014-10-26 12:59:38 · 1087 阅读 · 0 评论 -
HDU 3622 Bomb Game(2-sat)
HDU 3622 Bomb Game题目链接题意:求一个最大半径,使得每个二元组的点任选一个,可以得到所有圆两两不相交思路:显然的二分半径,然后2-sat去判定即可代码:#include #include #include #include #include #include using namespace std;const int MAX原创 2014-10-25 15:26:48 · 944 阅读 · 0 评论 -
POJ 3683 Priest John's Busiest Day(2-sat)
POJ 3683 Priest John's Busiest Day题目链接题意:给定几个时间,si, ti, di每个时间要选[si, si + di]或[ti - di, ti],问能否选出所有时间不相交的方案思路:显然的2-sat,注意判断相交的方法代码:#include #include #include using namespace std原创 2014-10-28 09:54:37 · 1234 阅读 · 0 评论 -
POJ 3678 Katu Puzzle(2-sat)
POJ 3678 Katu Puzzle题目链接题意:就根据那几个表达式,推算有没可能构造出解思路:基本的2-sat,把表达式都转化成2-sat的形式即可代码:#include #include #include #include #include using namespace std;const int MAXNODE = 2005;s原创 2014-10-27 11:10:34 · 933 阅读 · 0 评论 -
【图论】2-sat总结
2-sat总结2-sat问题,一般表现的形式为,每个点有两种方式a,b,要么选a,要么选b,并且点点之间有一些约束关系,例如:u和v至少一个选a,那么这就是一个表达式,把a当成真,b当成假,那就是u真或v真,2-sat的题目就是这样,给定这些约束,判断是否会矛盾注意表达式的转化形式,(其实就是离散数学中那几种转换方式)比如(u真且v真)或(u假且v假)就可以转化成(u真或v假)原创 2014-10-28 21:25:00 · 1446 阅读 · 1 评论 -
POJ 3905 Perfect Election(2-sat)
POJ 3905 Perfect Election题目链接思路:很裸的2-sat,就根据题意建边即可代码:#include #include #include #include #include using namespace std;const int MAXNODE = 2005;struct TwoSet { int n; vector原创 2014-10-27 00:45:46 · 1207 阅读 · 0 评论 -
HDU 4115 Eliminate the Conflict(2-sat)
HDU 4115 Eliminate the Conflict题目链接题意:Alice和Bob这对狗男女在玩剪刀石头布,已知Bob每轮要出什么,然后Bob给Alice一些限制,1表示i轮和j轮Alice必须出不一样的,0表示必须出一样的,如果Alice有一局输了就算输了,否则就是赢,问Alice是否能赢思路:2-sat问题,已经Bob出什么,Alice要么就出赢的要么就出平原创 2014-10-28 11:05:23 · 1153 阅读 · 0 评论 -
HDU 1815, POJ 2749 Building roads(2-sat)
HDU 1815, POJ 2749 Building roads题目链接HDU题目链接POJ题意:有n个牛棚, 还有两个中转站S1和S2, S1和S2用一条路连接起来。 为了使得任意牛棚两个都可以有道路联通,现在要让每个牛棚都连接一条路到S1或者S2。有a对牛棚互相有仇恨,所以不能让他们的路连接到同一个中转站。还有b对牛棚互相喜欢,所以他们的路必须连到同一个中专站。原创 2014-10-26 11:25:38 · 1108 阅读 · 0 评论 -
HDU 3715 Go Deeper(2-sat)
HDU 3715 Go Deeper题目链接题意:根据题意那个函数,构造x数组,问最大能递归层数思路:转化为2-sat问题,由于x只能是0,1,c只能是0,1,2那么问题就好办了,对于0, 1, 2对应分别是3种表达式,然后二分深度,搞2-sat即可代码:#include #include #include #include #include us原创 2014-10-25 15:59:24 · 1024 阅读 · 0 评论 -
HDU 3062 Party(2-sat)
HDU 3062 Party题目链接2sat模板题代码:#include #include #include #include #include using namespace std;const int MAXNODE = 2005;struct TwoSet { int n; vector g[MAXNODE * 2]; bool mar原创 2014-10-25 10:47:42 · 1095 阅读 · 0 评论 -
UVA 1391 - Astronauts(2-SET)
UVA 1391 - Astronauts题目链接题意:给定一些宇航员,年龄小于平均数能做A和C,大于等于能做B和C,现在知道一些宇航员互相憎恨,不能让他们做同一个任务,问一直种安排方法满足条件思路:2set问题,如果两种宇航员类型相同,就两个宇航员做不一样,加一条真或真,和假或假的边,如果类型不同,就加一条真或真的边代码:#include #includ原创 2014-08-30 21:14:24 · 1147 阅读 · 0 评论 -
UVA 11294 - Wedding(Two-Set)
UVA 11294 - Wedding题目链接题意:有n对夫妻,0号是公主,现在有一些通奸关系(男男,女女也是可能的)然后要求人分配在两侧,夫妻不能坐同一侧,并且公主对面一侧不能有两个同奸的人,问方案思路:2-set,建图,一共2n个人,设偶数是丈夫,奇数是妻子,左侧为false,右侧为true,然后丈夫妻子建一条true false 或 false true的边,然后然公原创 2014-08-31 11:57:55 · 1481 阅读 · 0 评论 -
UVA 10319 - Manhattan(2-SET)
UVA 10319 - Manhattan题目链接题意:一个城市,有南北和东西街道,每种街道都是单行道,现在给定几个起点和终点,要求起点和终点必须最多转一次弯可以到达,问是否可以满足所有的起点终点思路:2-set,对于东西,南北街道,向西(北)为false,向东(南)为true,对于每个起点终点,肯定是走坐标对应的那4条街道,表示出来是(s1 & a2) | (s2 & a原创 2014-08-31 15:30:26 · 1952 阅读 · 0 评论 -
UVA 1086 - The Ministers' Major Mess(2-sat)
UVA 1086 - The Ministers' Major Mess题目链接题意:有n个方案,每个人投票,一个人最多投4张票,现在要有一个方案,使得满足所有人投票方案中有超过一半被满足,输出方案的对错,如果一个方案对错都可以,就输出?思路:明显是二分图,一开始想错了,想从正着去把条件式化简,根本不可行正确的做法是,反过来想,因为最多4张票并且超过1半,如果反过来原创 2014-09-01 18:22:35 · 1488 阅读 · 0 评论 -
UVA 11930 - Rectangles(2-sat + 计算几何)
UVA 11930 - Rectangles题目链接题意:给定一些矩形,每个在两条对角线选一条,保证全部不相交,问可不可行(这题有坑啊,矩形不一定平行坐标轴。。。)思路:2-sat,主对角线为true,副对角线为false,枚举两个矩形的每条对角线,利用叉积判相交,如果相交就加一条边进去,最后2-sat判定即可代码:#include #include #原创 2014-09-02 10:26:48 · 952 阅读 · 0 评论 -
HDU 1824 Let's go home(2-sat)
HDU 1824 Let's go home题目链接思路:把表达式拆分掉,一队拆成a^b & a^c, 然后建图跑2-sat即可代码:原创 2014-10-25 11:03:28 · 984 阅读 · 0 评论 -
POJ 2296 Map Labeler(2-sat)
POJ 2296 Map Labeler题目链接题意:坐标轴上有N个点,要在每个点上贴一个正方形,这个正方形的横竖边分别和x,y轴平行,并且要使得点要么在正方形的上面那条边的中点,或者在下面那条边的中点,并且任意两个点的正方形都不重叠(可以重边)。问正方形最大边长可以多少?思路:显然的2-sat问题,注意判断两个矩形相交的地方,细节代码:#include原创 2014-10-26 17:42:21 · 959 阅读 · 0 评论 -
POJ 3207 Ikki's Story IV - Panda's Trick(2-sat)
POJ 3207 Ikki's Story IV - Panda's Trick题目链接题意:一个圆上顺序n个点,然后有m组连线,连接两点,要求这两点可以往圆内或圆外,问是否能构造出使得满足所有线段不相交思路:2-sat,判断相交的建边,一个在内,一个在外,然后跑一下2-sat即可代码:#include #include #include #include原创 2014-10-26 19:22:01 · 940 阅读 · 0 评论 -
HDU 4421 Bit Magic(2-sat)
HDU 4421 Bit Magic题目链接题意:就根据题目,给定b数组,看能不能构造出一个符合的a数组思路:把每个数字的每个二进制位单独考虑,就变成一个2-sat题目了,根据题目中的式子建立2-sat的边,然后每一位跑2-sat,如果每位都符合,就是YES,如果有一位不符合就是NO代码:#include #include #include #incl原创 2014-10-27 23:42:57 · 1015 阅读 · 0 评论