#P2287. Tian Ji -- The Horse Racing

    ID: 1289 传统题 2000ms 256MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>Shanghai 2004贪心算法赛马问题最大匹配

Tian Ji -- The Horse Racing

题目描述

这里有一个中国历史上的著名故事。

大约2300年前,田忌是齐国的一位高官,他喜欢和齐王及其他人赛马。田忌和齐王各有三匹马,分为三个等级:普通、优等和超级。比赛规则是进行三轮,每匹马必须参加一轮。每轮胜者从败者那里获得200银元。

作为国内最有权势的人,齐王的马非常优良,每个等级的马都比田忌的强。因此,每次比赛齐王都会从田忌那里赢走600银元。

田忌对此很不高兴,直到他遇到了中国历史上最著名的将军之一——孙膑。在孙膑的帮助下,田忌使用了一个小策略,在接下来的比赛中带回了200银元并赢得了荣誉。

这个策略相当简单:用他的普通马对阵齐王的超级马(这一轮必然输掉),然后用他的优等马击败齐王的普通马,用他的超级马击败齐王的优等马。多么简单的策略!现在你会如何看待这位中国的高官田忌呢?

如果田忌生活在今天,他肯定会嘲笑自己。更甚者,如果他现在坐在ACM竞赛现场,可能会发现赛马问题可以简单地视为在二分图中寻找最大匹配。将田忌的马放在一侧,齐王的马放在另一侧,每当田忌的一匹马能击败齐王的一匹马时,就在它们之间画一条边,表示希望建立这对匹配。那么,赢得尽可能多轮比赛的问题就转化为在这个图中寻找最大匹配。如果存在平局,问题会更复杂,需要为所有可能的边分配权重0、1或-1,然后寻找最大权完美匹配……

然而,赛马问题是二分匹配的一个特殊情况,图由马的速度决定——速度快的马总能击败速度慢的马。在这种情况下,使用加权二分匹配算法处理这个问题显得过于复杂。

在本题中,要求你编写程序解决这个特殊的匹配问题。

输入格式

  • 输入最多包含50个测试用例,每个用例以正整数n(n≤1000)开头,表示双方的马的数量。
  • 第二行是n个整数,表示田忌的马的速度。
  • 第三行是n个整数,表示齐王的马的速度。
  • 最后一个测试用例后有一行单独的0表示输入结束。

输出格式

  • 对每个测试用例,输出一行,包含一个整数,表示田忌能获得的最大银元数。

输入样例 1

3
92 83 71
95 87 74
2
20 20
20 20
2
20 19
22 18
0

输出样例 1

200
0
0

来源

上海2004年相关问题