//hdu 1052 Tian Ji -- The Horse Racing(贪心策略)
/*
题意:就是很经典的故事,田忌赛马;
解题:(贪心策略)
1.当田忌最慢的马比齐王最慢的马快,赢一场
2.当田忌最慢的马比齐王最慢的马慢,和齐王最快的马比,输一场
3.当田忌最慢的马和齐王最慢的马一样快,
(1)当田忌最快的马比齐王最快的马快时,赢一场先。
(2)当田忌最快的马比齐王最快的马慢时,拿最慢的马和齐王最快的马比,输一场。
(3)当田忌最快的马和齐王最快的马相等时,拿最慢的马来和齐王最快的马比.
*/
#include <iostream>
#include <cstring>
#include<cstdio>
#include <algorithm>
using namespace std;
const int N=1100;
int king[N];
int tian[N];
int n;
int main(){
while (scanf("%d",&n)!=EOF)
{
if (n==0) break;
for (int i=0;i<n;i++) scanf("%d",&tian[i]);
for (int i=0;i<n;i++) scanf("%d",&king[i]);
sort(tian,tian+n);
sort(king,king+n);
int j=0;
int win=0;
int kn=n;
for (int i=0;i<n;)
{
if(tian[i]>king[j])//当田忌最慢的马比齐王最慢的马快,赢一场
{
i++;
win++;
j++;
}
else if(tian[i]<king[j])//当田忌最慢的马比齐王最慢的马慢,和齐王最快的马比,输一场
{
kn--;
i++;
win--;
}
else if(tian[i]==king[j])//当田忌最慢的马和齐王最慢的马一样快,
{
if (tian[n-1]>king[kn-1])//当田忌最快的马比齐王最快的马快时,赢一场先。
{
n--;
kn--;
win++;
}
else if(tian[n-1]<king[kn-1])//当田忌最快的马比齐王最快的马慢时,拿最慢的马和齐王最快的马比,输一场。
{
i++;
kn--;
win--;
}
else if(tian[n-1]==king[kn-1])//当田忌最快的马和齐王最快的马相等时,拿最慢的马来和齐王最快的马比.
{
if (tian[i]<king[kn-1])
win--;
kn--;
i++;
}
}
}
printf("%d\n",win*200);
}
}
hdu 1052 Tian Ji -- The Horse Racing(贪心策略)
最新推荐文章于 2019-01-29 17:26:59 发布