codevs 2181 田忌赛马

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codevs 2181 田忌赛马相关的知识,希望对你有一定的参考价值。

2181 田忌赛马

        

 

      

        时间限制: 1 s                                    
         空间限制: 32000 KB                                   
        题目等级 :   钻石 Diamond                                              
 
题目描述                     Description                   

    中国古代的历史故事“田忌赛马”是为大家所熟知的。话说齐王和田忌又要赛马了,他们各派出N匹马,每场比赛,输的一方将要给赢的一方200两黄金,如果是平局的话,双方都不必拿出钱。现在每匹马的速度值是固定而且已知的,而齐王出马也不管田忌的出马顺序。请问田忌该如何安排自己的马去对抗齐王的马,才能赢取最多的钱?

                输入描述                 Input Description              

第一行为一个正整数n ,表示双方马的数量。 第二行有N个整数表示田忌的马的速度。 第三行的N个整数为齐王的马的速度。

                输出描述                 Output Description              

仅有一行,为田忌赛马可能赢得的最多的钱,结果有可能为负。

                样例输入                 Sample Input              

3 92 83 71 95 87 74

样例输出                 Sample Output              

200

数据范围及提示                 Data Size & Hint              

n <= 1000

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 using namespace std;
 6 const int N=2003;
 7 int n;
 8 
 9 int king[N],me[N];
10 int ans=0;
11 
12 int head=1,tail;
13 
14 bool cmp(int a,int b)
15 {
16     return a>b? 1 : 0;
17 }
18 int ans2=0;
19 void work()
20 {
21     for(int i=1;i<=n+1;i++)
22     {
23         if(me[head]>king[n])head++,n--,ans+=200;
24         else if(king[i]<me[tail])tail--,ans+=200;
25         else 
26         {
27             if(king[i]>me[tail])head++,ans-=200;
28         }
29     }
30 }
31  
32 int main()
33 {
34     scanf("%d",&n);tail=n;
35     for(int i=1;i<=n;i++)scanf("%d",me+i);
36     for(int i=1;i<=n;i++)scanf("%d",king+i);
37     sort(king+1,king+n+1,cmp);
38     sort(me+1,me+n+1);
39     work();
40     if(ans2>ans)ans=ans2;
41     if(ans<0)cout<<0;
42     else{
43         printf("%d",ans);
44     }
45     return 0;
46 }

 

以上是关于codevs 2181 田忌赛马的主要内容,如果未能解决你的问题,请参考以下文章

codevs 2181 田忌赛马

洛谷P1650赛马与codevs 2181 田忌赛马

2181 田忌赛马

贪心算法

[ CodeVS冲杯之路 ] P1368

算法大师孙膑--田忌赛马(转自labuladong)