赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为“战国时期”。在魏国作官的孙膑,因为受到同僚庞涓的迫害,被齐国使臣救出后,到达齐国国都。
赛马是当时最受齐国贵族欢迎的娱乐项目。上至国王,下到大臣,常常以赛马取乐,并以重金赌输赢。田忌多次与国王及其他大臣赌输赢,屡赌屡输。一天他赛马又输了,回家后闷闷不乐。孙膑安慰他说:“下次有机会带我到马场看看,也许我能帮你。”
孙膑仔细观察后发现,田忌的马和其他人的马相差并不远,只是策略运用不当,以致失败。
比赛前田忌按照孙膑的主意,用上等马鞍将下等马装饰起来,冒充上等马,与齐王的上等马比赛。第二场比赛,还是按照孙膑的安排,田忌用自己的上等马与国王的中等马比赛,在一片喝彩中,只见田忌的马竟然冲到齐王的马前面,赢了第二场。关键的第三场,田忌的中等马和国王的下等马比赛,田忌的马又一次冲到国王的马前面,结果二比一,田忌赢了国王。
就是这么简单,现在老王也来赛一赛马。假设每匹马都有恒定的速度,所以速度大的马一定比速度小的马先到终点(没有意外!!)。不允许出现平局。最后谁赢的场数多于一半(不包括一半),谁就是赢家(可能没有赢家)。老王有N(1≤N≤1000)匹马参加比赛。对手的马的数量与渊子马的数量一样,并且知道所有的马的速度。聪明的你来预测一下这场世纪之战的结果,看看老王能否赢得比赛。

输入格式:

输入有多组测试数据。
每组测试数据包括3行:
第一行输入N(1≤N≤1000)。表示马的数量。
第二行有N个整型数字,即渊子的N匹马的速度。
第三行有N个整型数字,即对手的N匹马的速度。
当N为0时退出。

代码解析:

1.为了保证渊子能赢过对手,要合理利用自己的上等马,所以我们将渊子和对手的马分别按照马的速度降序排序。

2.关键步骤:渊子的上等马要尽可能找刚好比自己弱一点的马比赛,在胜利的同时给自己的中等马留下更多的胜利机会,而不是单纯的=地找比自己若的马。

3.在以下代码中,我们分别记录渊子和对手的马,只拿渊子最强一半的马(即n/2+1)进行判断,因为如果最强的半数马都无法取得胜利,那就不可能赢

4.然后通过pos记录查找位置,当找到某一位置j发现此时的马马速慢于渊子的马,下一次半段就要从j+1(pos)开始查找

还有一件事:题目本身也没有考虑只有一场比赛的情况,所以。。。。。。

#include<bits/stdc++.h>
using namespace std;
bool cmp(int x,int y) {return x>y;}//规定排序方式为降序
int main()
{int n,p;vector<int>a,b;cin>>n;while(n>0){for(int t=1;t<=2*n;t++){cin>>p;t<=n?a.push_back(p):b.push_back(p);}sort(a.begin(),a.end(),cmp);sort(b.begin(),b.end(),cmp);int pos=0,flag=1;for(int t=0;t<n/2+1;t++){flag=1;for(int j=pos;j<n;j++){if(b[j]<a[t]){pos=j+1;//更新查找开始位置flag=0;break;}}if(flag==1)break;}flag==1?cout<<"NO"<<endl:cout<<"YES"<<endl;   a.clear();//清空b.clear();cin>>n;}
}

老王赛马!!!(题目有漏洞哦)相关推荐

  1. 问题 1253: 老王赛马

    题目描述 赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为"战国时期".在魏国作官的孙膑,因为受到同僚庞涓的迫害,被齐国使臣救出后,到达齐国国都. 赛马是 ...

  2. 用java编写赛马_老王赛马 (Java代码)

    解题思路: 要想赢得比赛,胜场数要大于一半: 用  渊子 得快马 去和 对手的快马比(小于渊子的快马) 如果没对手的快,则还用当前的去和对手 次快 的比:直到比对手快,在进行下一匹: 注意事项: 参考 ...

  3. 苹果自带相册打马赛克_老王被绿?iOS 13惊现漏洞,马赛克去除

    iOS 13 首先教长得说明下,虽然此文章的标题有些"标题党"的感觉,但相比之下还是比较贴切内容的,具体各位看后再置评 事情的起因来自于 iOS 13 的一个小漏洞,可谓劲爆.近日 ...

  4. 老王亲述:我的运维心路历程

    本文根据高效运维专家群友文章整理并发布.欢迎关注"高效运维"公众号,以抢先赏阅诚意满满的各种原创文章. 嘉宾简介 王津银 他,曾经从业腾讯.YY.UC等知名互联网公司 他,维护的微 ...

  5. 老王有两个孩子,已知至少有一个孩子是在星期二出生的男孩。问:两个孩子都是男孩的概率是多大?

    这个问题其实不难,只是很多时候,尤其在没有任何提示的时候,容易想错.条件概率的题目一定要看清楚条件信息. 问题描述:老王有两个孩子,已知至少有一个孩子是在星期二出生的男孩.问:两个孩子都是男孩的概率是 ...

  6. 石头剪刀布程序流程图_“脑王争霸赛”题目简单,选手说像石头剪刀布,王宇轩说谁都能做...

    <最强大脑>第七季马上就要收官了,整季节目看下来给观众最大的感受就是题目简单.赛制不合理,很多被看好的实力选手没有晋级,反倒是实力偏弱的选手顺利进入了中国战队,不免让观众觉得有点意难平. ...

  7. 马上2021年了线性表你还不知道原理?给老王整的明明白白

    文章目录 一.线性表必知必懂的原理 (一)线性表通俗易懂原理 二.线性表对数据的操作 (一)增加操作(老王插队神操作) (二)删除操作(小明取完票让位给老王) (三)查找操作 三.单链表案例 (一)案 ...

  8. 【老王的脑科学谬论】在CSDN问答区对网友提问的回复(一)

    说明: 本文是老王悬赏辩论[悬赏讨论(辩论)]愚人节应个景,再次拿出民科谬论并悬赏1000元求锤!中回复网友提问(质疑)提问的内容.CSDN问答区的文字编辑功能真是BUG太多,辛辛苦苦敲了很多字,竟然 ...

  9. 图解算法习题之老王的杂货铺

    原题:老王开杂货店想送N块冬瓜糖砖给客户,每块冬瓜糖砖长宽高都是10厘米.老王希望将这N块冬瓜糖砖包成一大包(x*y*z的长方体),以方便运送,但为了相应环保,希望使用的包装纸越少越好.编写一个程序输 ...

最新文章

  1. 代码下移快捷键_Intellij IDEA 快捷键大全
  2. krylov子空间迭代法
  3. vim 记录阅读信息
  4. flex页面中嵌入html页面
  5. 【转】Java内存与垃圾回收调优
  6. .NET Framework 4.8发布
  7. c语言树莓派音乐播放器,使用web端来控制我的树莓派播放音乐
  8. IOS UILabel组件
  9. pdca实施的流程图_(fmea七步法)过程流程图,FMEA,控制计划哪个在前哪个在后
  10. 群联PS3111坏硬盘修复记录
  11. ad模数转换采集电压程序c语言,单片机怎么通过AD转换得到电压值
  12. DV EV OV证书
  13. JDK内置命令行工具
  14. Linux第二课 文件系统目录结构
  15. 酒馆指南:小白开店必备
  16. echarts中对整个图形旋转90°(实现div旋转90度)
  17. 互联网营销方法十五个
  18. JVM:自动内存管理-垃圾收集器与内存分配策略
  19. (实验38)单片机,STM32F4学习笔记,代码讲解【SD卡实验】【正点原子】【原创】
  20. mysql ocp 认证 题库_MySQL 8 OCP(1Z0-908)认证考试题库原题(第12题)

热门文章

  1. matplotlib常用命令合集
  2. Flowable教程
  3. Mac 电脑不显示硬盘
  4. HTML5+CSS3学习笔记(三)文档流和盒子模型【附练习:图片列表、左侧导航栏】
  5. Ubuntu 如何根据NVIDIA显卡型号确定对应的显卡驱动版本并安装
  6. 全球及中国银行产业资产规模状况及经营效益分析报告2021-2027年
  7. SAP 发出商品详解-配置与实操
  8. 解决共享打印机出现0x00000709错误代码
  9. Opencv3.2.0+win10环境搭建
  10. d3-geo 属性介绍