⭐ 文章链接: www.mengyingjie.com/archives/39/ ⭐

最后赢家

时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB

题目描述:

最强的不一定是最后的赢家。

某赛事有n名选手参加,但是不同于其他的比赛,本比赛采取的是擂台赛的形式,n名选手排成一排,每次队伍的第一位和第二位选手进行比赛,输的一方会排到队尾。

当某位选手取得m连胜时,他将成为最后的赢家,且游戏结束,请问截止到游戏结束,共会进行多少次比赛。

两位选手的比赛结果由他们的战斗力决定,n位选手的战斗力是一个1~n的排列,也就是说他们的战斗力两两不同,不会有平局的情况。

输入

输入第一行包含两个正整数n,m,分别代表参赛选手数量和取得连胜的要求。(1<=n<=100000,1<=m<=10^9)

输入第二行包含n个正整数,中间用空格隔开,第i个数表示队伍的第i位选手的战斗力,整体是一个1~n的排列。

输出

输出仅包含一个正整数,表示截止到游戏终止,共进行多少场比赛。

样例输入

4 2
1 3 2 4

样例输出

2

提示

样例解释
显然第一局应该是战斗力为3的选手获胜,第二局同样是战斗力为3的选手获胜,2连胜终止游戏,所以答案是2。此时若修改m为3,则结果是5。

代码

解题思路写在代码的注释里

#include <iostream>
#include <queue>using namespace std;int main(){//n,m,分别代表参赛选手数量和取得连胜的要求//cnt记录作为基准选手的胜场数int n, m, h, y, cnt;//cnt2表示共进行了多少场比赛int cnt2 = 0;//定义队列来存储每位选手的战斗力queue <int> q;cin >> n >> m;for(int i = 0; i < n; i++){//将战斗力存储在队列中cin >> h;q.push(h);}//取出第一个队列当作基准h = q.front();q.pop();//默认胜场为零cnt = 0;while(cnt < m){//一次循环代表进行一场比赛cnt2 ++;y = q.front();//将基准h与现在队首的y相比较if(h > y){//如果h胜了,他继续当基准,然后他的胜场+1cnt++;//将队首的y取出,放到队列q.pop();q.push(y);}else{//如果y胜了,把原来的h放到队尾,然后将y作为基准,他的胜场置为1,q.pop();q.push(h);h = y;cnt = 1;}}cout << cnt2 << endl;return 0;
}

遇到此类问题,但看了文章还是未解决,
评论或加 QQ:781378815

360校招——最后赢家(C++)相关推荐

  1. 9.25 360校招面试题总结? 自己面试 c++后端开发,服务器方向,探索部门。

    2018.9.25 360校招面试题总结?   自己面试  c++后端开发,服务器方向,探索部门. 1上来问智力题       5L和6L的杯子量出3L的水,如何量? 一.下面开始问c++的基础的东西 ...

  2. 360 c语言 笔试,奇虎360校招的笔试真题

    选择题有45个? 好像是,三道简答题, 简答题: 1.设计一个课程表(包括目标人群.核心功能.特色设计); 2.说ATM的缺点,改进方法; 3.如何让李开复等互联网大牌关注你的微薄? 选择题记得不是很 ...

  3. 360校招笔试题总结3

    21题 答案:A 22题 23题 24题 答案:C 25题 答案:B 26题 27题 答案:D 28题 答案:B . 29题 答案: B 30题 答案:true flase true flase tr ...

  4. 2022届360校招提前批推荐算法面试题总结

    文末彩蛋:七月在线干货组最新升级的<2021大厂最新AI面试题 [含答案和解析, 更新到前121题]>免费送! 问题1:非递归的二叉树中序遍历 该题为Leetcode-94:二叉树的中序遍 ...

  5. 2018 360校招笔试(前两题)

    n个点,找出可以包含所有点的一个最小矩形的面积 很简单,直接 x轴y轴 分别记录一个最大值最小值,这时可以获得一个最小长方形,在长宽里面取个最大值就得到了正方形的边长,算个平方就出来了 PS. 这道题 ...

  6. 滴滴打车And 360 校招 2016 在线笔试(一)

    1.烧一根不均匀的绳,从头烧到尾总共需要1个小时.现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢? 一根从一头少,一根从两头烧,再有一根做参照,两头烧完的记下位置(即烧到这里要 ...

  7. 2015.11--360校招面试-后台C++开发工程师

    15年10月初参加的360校招面试-后台C++开发工程师,一共经历三轮面试. 开始是线上笔试,没过,去霸面给了机会面试. 一面 1.把项目和实习经历仔细的问了个编,其中的技术细节问的非常细. 2.计算 ...

  8. 九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试六十题

    九月迅雷,华为,阿里巴巴,最新笔试面试十题 8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有白球.黑球各100个,现在按下述规则取球:的     i .每次从通里面 ...

  9. 最新校招笔试面试六十题

    原文: 九月十月百度,迅雷,华为,阿里巴巴最新校招笔试面试六十题(11.05) 链接:http://blog.csdn.net/v_july_v/article/details/11921021 分类 ...

  10. 2014九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试题

    九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试六十题 题记 本博客自2010年10月11日开通以来,已经帮助了一大批人找到工作,特别是连续三年在每一年的9.10月份陪伴了至少三届毕业生找工作的旅 ...

最新文章

  1. AI Time 7 | 人机交互的终极状态——人机共生
  2. BitMap 原理代码记录
  3. 【转】Android使用嵌入式关系型SQLite数据库存储数据【学习记录】
  4. TIOBE Programming Community Index
  5. html页面显示html代码怎么写,求助这段代码如何转换成正常可看的HTML页面
  6. java中map怎么遍历,Java中怎么遍历Map的所有的元素
  7. java 程序分析题_java程序入门50题分析:002
  8. 怎样安装php52-71,CentOS如何安装PHP5和PHP7
  9. linux快照软件哪个好,Linux下的快照snapshot的实现
  10. 设置centos上的redis可以被访问
  11. postman断言作用及怎么使用
  12. win10无线投屏_如何实现win10无线投屏电视?电脑投屏电视的办法介绍
  13. USB加密狗复制克隆破解软件
  14. 【白话设计模式】23种设计模式一句话通俗讲解
  15. 【今年年会,你中奖了吗?】在线抽奖活动中如何实现中奖概率的自适应调整...
  16. <C++>运算符重载完结,详解赋值,关系,函数调用运算符
  17. linux calloc
  18. PDF矢量图片转为EPS格式图片的方法
  19. 利用留数定理计算实积分
  20. DerekJiang的装修日记汇总帖

热门文章

  1. 【转载】测试金字塔实战
  2. SSL单向认证和双向认证
  3. 12 最长考拉兹序列
  4. 带图标显示的ls---lsd
  5. iPhone媒体服务器修改,出现Apple媒体服务条款与条件已更改是怎么回事如何解决...
  6. 今日财富杂志今日财富杂志社今日财富编辑部2022年第11期目录
  7. 史上最“犯贱”的十首情歌
  8. php 教育类,php教育培训网站是哪个
  9. shopNC开发手册
  10. python实现数模转换_树莓派:PCF8591数模转换模块的使用