算法:HDU 1824 Let's go home (2-SAT判断)

【题目】

Problem Description

小时候,乡愁是一枚小小的邮票,我在这头,母亲在那头。

—— 余光中 集训是辛苦的,道路是坎坷的,休息还是必须的。经过一段时间的训练,lcy决定让大家回家放松一下,但是 训练还是得照常进行,lcy想出了如下回家规定,每一个队(三人一队)或者队长留下或者其余两名队员同时 留下;每一对队员,如果队员A留下,则队员B必须回家休息下,或者B留下,A回家。由于今年集训队人数突 破往年同期最高记录,管理难度相当大,lcy也不知道自己的决定是否可行,所以这个难题就交给你了,呵呵 ,好处嘛~,免费**漂流一日。 Input

第一行有两个整数,T和M,1<=T<=1000表示队伍数,1<=M<=5000表示对数。接下来有T行,每行三个整数,表示一个队的队员编号,第一个队员就是该队队长。然后有M行,每行两个整数,表示一对队员的编号。每个队员只属于一个队。队员编号从0开始。

Output

可行输出yes,否则输出no,以EOF为结束。

Sample Input

1 20 1 20 11 22 40 1 23 4 50 30 41 31 4

Sample Output

yesno

【思路】

每一个队伍中,要么队长留下,要么另外两个队员留下,这是一个矛盾对,可以把队长 看成一个点,把两个队员也抽象成一个点,

把他们进行一个映射,  对于a,b,c, !a->b,  !b->a, !c->a, 即f[a] = b, f[b]=a, f[c]=a,然后直接用2-SAT判断即可。

时间: 2024-09-16 07:57:32

算法:HDU 1824 Let's go home (2-SAT判断)的相关文章

eclips怎么样做到悔棋啊,五子棋悔棋以后选择不同的算法,是不是要重新调用一次盘面判断?

问题描述 eclips怎么样做到悔棋啊,五子棋悔棋以后选择不同的算法,是不是要重新调用一次盘面判断? eclips怎么样做到悔棋啊,五子棋悔棋以后选择不同的算法,是不是要重新调用一次盘面判断? 解决方案 http://download.csdn.net/download/lihanyuan2008/615512 解决方案二: Eclpse 是没有这样的功能,需要你自己编写代码,如:Java 来实现. 你的代码,只要记录每一步,想做到悔棋应该是很简单的.网上关于悔棋的示例代码很多,关键是能否融入你

算法-HDU 1509 Windows Message Queue

问题描述 HDU 1509 Windows Message Queue 自己测试总刚觉没错,求高手帮忙,不知道哪错了,总wa.................................. 解决方案 import java.util.Comparator; import java.util.PriorityQueue; import java.util.Scanner; class Nod { String name; int val, pri; public Nod(String name

百度算法中对网站用户体验到底是怎样判断的?

在我们SEO眼中,每个高手SEO都会说,最顶级的SEO就是做好用户体验,有了好的用户体验,就会拥有好的排名,和好的流量.网奇承认,用户体验是SEO中非常重要的一部分,但是一般普通的企业站是很难做好用户体验的,大家都是卖产品的网站,要想做好用户体验实在是难上加难. 在百度最近的10月24号推出的"页面优化建议工具升级上线"这个工具的推出,网奇SEO通过这个工具可以了解到,百度中判断用户体验的一个方面.   这个页面优化建议工具到底是个什么样子的东西呢?通过百度官方的说法是:网站页面书写以

请教一个算法问题,有两个数组A,B,判断A中是否至少有一个元素和B中元素相同

问题描述 最笨的办法当然是二层嵌套循环,但觉得应该有更好的方法,但是着实想不出来,想听听大家的意见,大家帮帮小弟i.estring[]A={"X","Y","Z","W"};string[]B={"X","E","Z","U","V"};只要发现B中有一个A的元素就可以 解决方案 解决方案二:数据量不大(100条内100*100

百度算法中对网站用户体验到底是怎样判断

在百度最近的10月24号推出的"页面优化建议工具升级上线"这个工具的推出,网奇SEO通过这个工具可以了解到,百度中判断用户体验的一个方面.   这个页面优化建议工具到底是个什么样子的东西呢?通过百度官方的说法是:网站页面书写以及格式要规范,能够让用户更加的了解网页,并且对搜索引擎更加的友好,按照官方的意思就是怎么弄页面优化才能提供更加好的用户体验. 后面网奇SEO做了测试,结果如下:   根据百度所给出来的数据,页面打开时间的快慢应该就是决定你网站测试结果的得分多少.另外百度此工具会把

50分,在线求一个算法问题,有两个数组A,B,判断A中是否至少有一个元素和B中元素相同(即判断两个数组的元素是否有交集)

问题描述 最笨的办法当然是二层嵌套循环,但觉得应该有更好的方法,但是着实想不出来,想听听大家的意见,大家帮帮小弟i.estring[]A={"X","Y","Z","W"};string[]B={"X","E","Z","U","V"};只要发现B中有一个A的元素就可以 解决方案 解决方案二:循环应该比较简单如果实在数据量大,可

排序算法

排序|算法 算法是程序设计的精髓,程序设计的实质就是构造解决问题的算法,将其解释为计算机语言. 在这里您可以了解到: 算法定义 伪代码的使用 算法的复杂性 算法设计策略 常用算法 这里所有的算法都以一种类似Pascal语言的伪代码描述,请参阅伪代码的使用. 新增内容 关于数论的算法--数论基本知识(May 6, 2001)动态规划重新整理 (January 15, 2001)图的深度优先遍历 (January 21, 2001) 图的广度优先遍历 (January 21, 2001)图的拓扑排序

PHP中实现Bloom Filter算法

 这篇文章主要介绍了PHP中实现Bloom Filter算法,本文直接给出实现代码,代码中给出详细注释,Bloom Filter算法介绍等内容,需要的朋友可以参考下     ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

排序算法(3)

  =e then Insertion_Sort(L,p,r)//若L[p..r]足够小则直接对L[p..r]进行插入排序 else begin 2 q:=partition(p,r,L);//将L[p..r]分解为L[p..q]和L[q+1..r]两部分 3 Quick_Sort(p,q,L); //递归排序L[p..q] 4 Quick_Sort(q+1,r,L);//递归排序L[q+1..r] end; end; 对 线性表L[1..n]进行排序,只要调用Quick_Sort(1,n,L)