描述
Ratish是一个年轻人,总是梦想成为一个英雄。有一天,他的朋友Luffy被Pirate Arlong抓到。拉特立刻出发去阿隆的岛上。当他到了那里,他找到了他的朋友被保管的秘密的地方,但他不能直接进去。他看到一个大门在他面前,两把锁在门口。在大门旁边,他发现一块奇怪的岩石,上面有一些奇怪的话。句子被加密。但是对于一个业余密码学家拉蒂什来说很容易。在解密所有句子后,Ratish知道以下事实:
在大门后面,有一个嵌套监狱,由M楼层组成。每个楼层除了最深的楼层都有一个通往下一楼层的门,每个楼层都有两个锁。如果他打开其中的两个锁中的任一个,那么放弃可以通过门。总共有2N种不同类型的锁。相同类型的锁可以出现在不同的门中,并且门可以具有相同类型的两个锁。只有一个键可以解锁一种类型的锁,因此有2N个键用于所有2N种类型的锁。这2N个键被分成N对,并且一旦使用一对中的一个键,另一个键将消失并且不再出现。
后来,Ratish在岩石下面发现了N对钥匙,一张纸记录了M门上什么样的锁。但是拉西什不知道Luffy是哪一个地方,所以他必须打开尽可能多的门。你能帮他选择N把钥匙打开最大门数吗?
输入
有几个测试用例。每个测试用例以一个包含由空格分隔的两个正整数N(1 <= N <= 210)和M(1 <= M <= 211)的行开始,第一个整数表示键的类型数,第二个integer表示门的数量。 2N个密钥编号为0,1,2,...,2N-1。以下N行中的每一行包含两个不同的整数,它们是一对中的两个密钥的数字。之后,以下M行中的每一行包含两个整数,这两个整数是与门中的两个锁相对应的两个键的数字。你应该注意,门是按照与Ratish相遇的顺序给出的。 N = M = 0的测试用例结束输入,不应处理。
输出
对于每个测试用例,输出一行包含整数,这是Ratish可以打开的最大门数。
POJ 2723 Get Luffy Out 已翻译
最新推荐文章于 2021-04-10 17:45:19 发布