#P2723. Get Luffy Out
Get Luffy Out
描述
Ratish 是个总梦想成为英雄的年轻人。有一天,他的朋友 Luffy 被海盗 Arlong 抓走了,Ratish 便立刻出发前往 Arlong 岛。当他到达那里时,找到了关押朋友的秘密地点,但他不能直接闯入。他看到正前方有一扇大门,门上有两个锁。大门旁边有一块奇怪的石头,上面刻有一些奇怪的文字。那些句子被加密了,但对于业余密码学家 Ratish 来说,这很容易解开。解密后,Ratish 得知以下事实:
大门后面有一个巢式监狱,共有 层。除最深的一层之外,每层都有一扇通向下一层的门,而每扇门上都有两个锁。Ratish 只要其中任一把锁被打开就可以通过门。所有门上共有 种不同类型的锁。相同类型的锁可能出现在不同的门上,而且一扇门上可能有两个相同类型的锁。每把锁对应唯一的一把钥匙,所以总共 把钥匙,同时这些钥匙被分成 对,一旦某对钥匙中的一把被使用,另一把就会消失,不再出现。
后来,Ratish 在石头下面找到了 对钥匙,并发现一张纸,准确记录了 扇门上锁的种类。但 Ratish 并不知道 Luffy 被关在第几层,所以他必须尽可能多地打开门。请你帮助他从每对钥匙中选择一把钥匙,使得他能够打开最多的门。
输入
输入包含若干测试用例。每个测试用例的第一行包含两个正整数 和 ,其中 表示钥匙类型数(钥匙总数为 ,编号为 ), 表示门的数量。接下来的 行中,每行包含两个不同的整数,表示一对钥匙的编号。之后的 行中,每行包含两个整数,表示一扇门上两个锁对应的钥匙编号。门按照 Ratish 遇到的顺序给出。测试用例以一行 "" 结束,不需处理。
输出
对于每个测试用例,输出一行一个整数,表示 Ratish 最多能打开的门数。
3 6
0 3
1 2
4 5
0 1
0 2
4 1
4 2
3 5
2 2
0 0
4
题目来源
Beijing 2005