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;
}
目录
相关文章
|
6月前
|
Go
【LeetCode 热题100】字符串 DP 三连:最长回文子串、最长公共子序列 & 编辑距离(力扣5 / 1143/ )(Go语言版)
本文详细解析了字符串动态规划(DP)领域的三个经典问题:**最长回文子串**(LeetCode 5)、**最长公共子序列**(LeetCode 1143)和**编辑距离**(LeetCode 72)。通过定义状态、推导状态转移方程,结合 Go 语言实现代码,深入浅出地讲解了解题思路。从判断子串是否为回文到求解两个字符串的匹配长度,再到计算字符串转换的最小操作数,每道题都展示了 DP 的核心思想与应用场景。最后通过表格总结对比三题的异同,帮助读者更好地掌握字符串 DP 的解题技巧。
229 45
|
5月前
|
存储 前端开发 搜索推荐
typora最新版解决方法,typora免费下载
Typora是一款简洁高效的Markdown编辑器,支持实时预览、语法高亮、数学公式、图表绘制等功能,适用于写作、编程和技术文档编写。界面极简,功能全面,支持多平台使用。
894 1
|
Kubernetes 测试技术 应用服务中间件
基于 Nginx Ingress + 云效 AppStack 实现灰度发布
本文将演示结合云效 AppStack,来看下如何在阿里云 ACK 集群上进行应用的 Ingress 灰度发布。
65411 25
使用京东API接口进行支付结算有哪些注意事项?
使用京东API接口进行支付结算时,需遵守京东开放平台规定,保护用户隐私,关注API接口变化,确保应用合法、完整、可靠,正确使用API对接信息,保持API接口调用成功率,及时整改程序缺陷,结算依据以商家后台系统为准。如需帮助,请私信或评论联系。
|
缓存
DevEco Studio 5.0.1 Beta3安装及配置
本文介绍了如何下载、安装和配置华为DevEco Studio 5.0.1 Beta3,并详细说明了安装HarmonyOS模拟器及创建虚拟机的步骤。包括下载安装包、卸载旧版本、选择安装目录、创建快捷方式、启动DevEco Studio、配置环境、进入设备管理器、下载虚拟机镜像、创建和启动虚拟机等操作。
1904 1
|
运维 负载均衡 监控
slb学习教程
【9月更文挑战第1天】
391 1
|
关系型数据库 MySQL
Mysql中count(1)、count(*)以及count(列)的区别
Mysql中count(1)、count(*)以及count(列)的区别
337 0
|
机器学习/深度学习
【从零开始学习深度学习】21. 卷积神经网络(CNN)之二维卷积层原理介绍、如何用卷积层检测物体边缘
【从零开始学习深度学习】21. 卷积神经网络(CNN)之二维卷积层原理介绍、如何用卷积层检测物体边缘
|
Java 数据库 开发者
深入解析 Spring Cloud Seata:分布式事务的全面指南
深入解析 Spring Cloud Seata:分布式事务的全面指南
664 1
|
存储 网络协议 安全
编程入门(四)【计算机网络基础(由一根网线连接两个电脑开始)】
编程入门(四)【计算机网络基础(由一根网线连接两个电脑开始)】
234 1