hdu 1052 Tian Ji -- The Horse Racing【田忌赛马】(贪心)

简介: hdu 1052 Tian Ji -- The Horse Racing【田忌赛马】(贪心)

田忌赛马这个故事大家都很熟悉了,我也就不再多做介绍了,反正就是要尽可能让赢得场数多一点。

我的思路如下:

先比较两方最快的马

(一)本方大于对方

直接用本方最快的马去干掉对方最快的马。

(二)本方小于等于对方

比较双方最慢的马

1 本方大于对方

直接用本方最慢的马去干掉对方最慢的马

2 本方小于等于对方

本方最慢的马与对方最快的马作比较(只可能是小于或等于)

(1)本方等于对方

打平

(2)本方小于对方

换子

 

重复以上步骤,直到全部比完。

AC代码如下:

//1052
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF&&n)  //马的数量
    {
        int a[1001],b[1001],i,sum=0;
        for(i=0;i<n;i++)
            scanf("%d",&a[i]);     //本方
        for(i=0;i<n;i++)
            scanf("%d",&b[i]);     //对方
        sort(a,a+n);               //排序
        sort(b,b+n);
        int bl=0,br=n-1,al=0,ar=n-1; //四个端点
        //printf("%d\n",a[ar]);
        while(al<=ar)                //终止条件
        {
            if(a[ar]>b[br])          //最快斗最快
            {
                sum+=200;
                ar--;
                br--;
            }
            else      
            {
                if(a[al]>b[bl])      //最慢斗最慢
                {
                    sum+=200;
                    al++;
                    bl++;
                }
                else
                {
                    if(a[al]==b[br])  //打平
                    {
                        al++;
                        br--;
                    }
                    else              //换子
                    {
                        sum-=200;
                        al++;
                        br--;
                    }
                }
            }
        }
        printf("%d\n",sum);
    }
    return 0;
}
目录
相关文章
|
Java 文件存储
hdu1128 Self Numbers
hdu1128 Self Numbers
46 0
|
人工智能 Java
2021杭电多校5-Arrary-hdu7020
Array Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others) Total Submission(s): 965 Accepted Submission(s): 312 Problem Description Given an integer array a[1…n].
188 0
2021杭电多校5-Arrary-hdu7020
HDOJ(HDU) 1570 A C
HDOJ(HDU) 1570 A C
116 0
HDOJ(HDU) 1570 A C
|
人工智能 Java
hdu 1712 ACboy needs your help
ACboy这学期有N门课程,他计划花最多M天去学习去学习这些课程,ACboy再第i天学习第j门课程的收益是不同的,求ACboy能获得的最大收益。
149 0
|
Java 人工智能 Windows
|
人工智能