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;
}
目录
相关文章
|
7月前
|
Java 测试技术
hdu 1228 A + B
hdu 1228 A + B
50 0
HDU2203亲和串
博客水平见水平......目前阶段就是这么菜,我会好好努力的!毕业直接拿到阿里offer!
1231 0
HDU 2549 壮志难酬
壮志难酬 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12541    Accepted Submission(s): 4166 Problem Description 话说MCA山上各路豪杰均出山抗敌,去年曾在江湖威名显赫的,江湖人称的甘露也不甘示弱,“天将降大任于斯人也,必先劳其筋骨,饿其体肤,空乏其身”他说。
1031 0
|
Java BI
HDU 2034 人见人爱A-B
人见人爱A-B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 77157    Accepted Submission(s): 21509 Problem Description 参加过上个月月赛的同学一定还记得其中的一个最简单的题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。
1163 0
|
Java 测试技术
HDU 1847
Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3204    Accepted Submission(s): 2008 Problem Description 大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Cici都是如此。
854 0
|
机器学习/深度学习 人工智能
HDU 2674
  题意:求N!mod2009,N=41时,N!因式分解一定含7*7*41,即N!%2009=0.所以只要计算0
719 0
hdu 2087 剪花布条
点击打开链接hdu2087 思路:kmp 分析: 1 题目要求的是给定一个文本串和给定一个模式串,求文本串中有几个模式串。 2 注意文本串为"aaaaaa",模式串"aa"的时候,ans = 3 而不是5。
952 0

热门文章

最新文章