POJ 2723 Get Luffy Out 已翻译

描述

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可以打开的最大门数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值