题意:

      田忌和齐王赛马,两个人每人n匹马,每个马都有自己的速度,赢一场得到200分,输一场失去200分,平则不得分,问田忌可能得到的最高得分是多少?

思路:

      又是一个比较经典的贪心小题目,这个题目很容易想到,就是我们先排序,然后我们这样想,如果我们是田忌,对方是齐王,首先我们可以拿最快的那个马和他最快的那个马比一下,如果能赢,那么直接比赛,得到一分,这个不用质疑,因为用自己的最强去得分的同时还削弱的对方的最强,这个果断是最优的,然后如果比不过呢?比不过就有可能面临着这一局要输的节奏,反正也是输,我们就找一个我们最小的去和他最大的比,去浪费他的最大的,这样输的有价值,但是这是后要注意一点,就是如果我们最小的比他的最小的大,那么我们还不如用我们最小的和他的最小的比一次,先赢200分,前面的那个打不过先放一下,在处理晚处理都一样,现在能赢一次是一次,那么整理后就是这样:先用最想的和他最强的比,如果能打赢就打,否则就看看我们最弱的能不能打得过他的最弱的,如果能赢就直接比,否则就拿最弱的去换他最强的,输的有价值点,还有就是有一个小地方要注意,如果我们打算用最弱的换最强的了,发现最弱的和他最强的一样,那么这时候我们是不输钱的,其实这个时候应该是直接可以break了吧,我没想错的话这个时候双方剩下的所有马的速度都是一样的。

#include<stdio.h>

#include<algorithm>

#define N 1000 + 10

using namespace std;

bool camp(int a ,int b)

{

   return a > b;

}

int num1[N] ,num2[N];

int main ()

{

   int i ,n ,l1 ,l2 ,r1 ,r2, Ans;

   while(~scanf("%d" ,&n) && n)

   {

      for(i = 1 ;i <= n ;i ++) 

        scanf("%d" ,&num1[i]);

      for(i = 1 ;i <= n ;i ++) 

        scanf("%d" ,&num2[i]);

      sort(num1 + 1 ,num1 + n + 1 ,camp);

      sort(num2 + 1 ,num2 + n + 1 ,camp);

      l1 = l2 = 1 ,r1 = r2 = n;

      Ans = 0;

      while(n--)

      {

         if(num1[l1] > num2[l2])

         {

            l1 ++ ,l2 ++;

            Ans ++;

         }

         else if(num1[r1] > num2[r2])

         {

            r1 -- ,r2 --;

            Ans ++;

         }

         else

         {

            

            if(num1[r1] < num2[l2]) 

              Ans --;

            r1 -- ,l2 ++;

            

         }

      }

      printf("%d\n" ,Ans * 200);

   }

   return 0;

}

      

      

LA3266田忌赛马的更多相关文章

  1. nyoj 364 田忌赛马(贪心)

    田忌赛马 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 Here is a famous story in Chinese history. "That ...

  2. [codevs2181]田忌赛马

    [codevs2181]田忌赛马 试题描述 中国古代的历史故事"田忌赛马"是为大家所熟知的.话说齐王和田忌又要赛马了,他们各派出N匹马,每场比赛,输的一方将要给赢的一方200两黄金 ...

  3. ACM 田忌赛马

    田忌赛马 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 Here is a famous story in Chinese history. "That ...

  4. TYVJ P1048 田忌赛马 Label:dp

    描述     中国古代的历史故事“田忌赛马”是为大家所熟知的.话说齐王和田忌又要赛马了,他们各派出N匹马,每场比赛,输的一方将要给赢的一方200两黄金,如果是平局的话,双方都不必拿出钱.现在每匹马的速 ...

  5. HDUOJ-------1052Tian Ji -- The Horse Racing(田忌赛马)

    Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  6. D - D 田忌赛马

    D - D    田忌赛马   解题报告 hdu 1052 Tian Ji -- The Horse Racing 链接:http://acm.hust.edu.cn/vjudge/contest/v ...

  7. HDOJ-1052 田忌赛马(贪心)

    田忌赛马 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述: Here is a famous story in Chinese history. "That was ...

  8. [洛谷P1650] 田忌赛马

    贪心难题:总结贪心问题的一般思路 传送门:$>here<$ 题意 田忌和齐王各有n匹马,赛马时一一对应.赢+200,输-200,平+0. 问最多多少钱? 数据范围:$n \leq 2000 ...

  9. Python3-大魔王小项目-田忌赛马

    本人今天第一次接触项目,花了4小时,不包括学习时间,特此留个纪念 记录一下那些年走过的坑,以资鼓励 英语不怎么好,随缘看看 内容: 类似田忌赛马,三盘两胜,属性人物在一定范围内随机,就这样了 code ...

随机推荐

  1. win10使用cmd命令关闭防火墙

    在搜索框内输入cmd,右键选择管理员运行 然后输入: NetSh Advfirewall set allprofiles state off #关闭防火墙 Netsh Advfirewall show ...

  2. 洛谷 P4747 [CERC2017]Intrinsic Interval 线段树维护连续区间

    题目描述 题目传送门 分析 考虑对于 \([l,r]\),如何求出包住它的长度最短的好区间 做法就是用一个指针从 \(r\) 向右扫,每次查询以当前指针为右端点的最短的能包住 \([l,r]\) 的好 ...

  3. HDR(高动态范围)

    一: 简介 一般来说,当存储在帧缓冲(Framebuffer)中时,亮度和颜色的值是默认被限制在0.0到1.0之间的. 但是如果我们遇上了一个特定的区域,其中有多个亮光源使这些数值总和超过了1.0,又 ...

  4. WPF中Popup上的textbox无法切换到中文输入法

    As Marco Zhou has said in the msdn forum (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b ...

  5. postman接口测试之设置全局变量和设置环境变量和全局变量

    一.概念 1.环境变量 就是接口的域名或IP地址. 2.全局变量 就是一个作用域为整个postman的变量. 二.使用场景 1.环境变量 在测试的过程中,经常会频繁切换环境,本地环境验证.发布到测试环 ...

  6. mysql内一些可以报错注入的查询语句

        一.exp() 取反参数 该函数简单来说就是,以e为底的对数,在当传递一个大于709的值时,函数exp()就会引起一个溢出错误,取反则可以导致很小的数值变得很大,比如说0 这样既可配合使用,e ...

  7. 漏洞复现-CVE-2017-12629-RCE-solr:XXE

                  0x00 实验环境 攻击机:Win 10.Win Server 2012 R2 靶机:Ubuntu18 (docker搭建的vulhub靶场) 0x01 影响版本 Apac ...

  8. mybatis&plus系列------Mysql的JSON字段的读取和转换

    mybatis&plus系列------Mysql的JSON字段的读取和转换 一. 背景 在平常的开发中,我们可能会有这样的需求: 业务数据在存储的时候,并不是以mysql中的varchar丶 ...

  9. git提交本地文件到远程仓库及参与的项目仓库

    1.git提交本地文件到组织 1.先再组织中建立个用于存放文件的仓库建然后复制仓库地址: 2.进入要上传的文件的根目录下右击 git Bash 进入git控制台,我要上传的文件如下: 3.进入后: 1 ...

  10. 深入理解Java并发框架AQS系列(三):独占锁(Exclusive Lock)

    一.前言 优秀的源码就在那里 经过了前面两章的铺垫,终于要切入正题了,本章也是整个AQS的核心之一 从本章开始,我们要精读AQS源码,在欣赏它的同时也要学会质疑它.当然本文不会带着大家逐行过源码(会有 ...