P4715 【深基16.例1】淘汰赛

题目描述

有 2^n(n≤7) 个国家参加世界杯决赛圈且进入淘汰赛环节。我经知道各个国家的能力值,且都不相等。能力值高的国家和能力值低的国家踢比赛时高者获胜。1 号国家和 2 号国家踢一场比赛,胜者晋级。3 号国家和 4 号国家也踢一场,胜者晋级……晋级后的国家用相同的方法继续完成赛程,直到决出冠军。给出各个国家的能力值,请问亚军是哪个国家?

输入格式

输出格式

输入输出样例

输入

3
4 2 3 1 10 5 9 7

输出

1

思路1

把 nn 支队伍分成两个区间,一个上半区,一个下半区。

那么上半区最强者与下半区最强者,必是一冠一亚。

直接 sort 即可

代码

#include <bits/stdc++.h>
using namespace std;
int n;
struct dui{
int a,num;
}dd[1000];
bool cmp(dui a,dui b)
{return a.a<b.a;}
int main()
{
scanf("%d",&n);
for(int i=1;i<=(1<<n);i++)
scanf("%d",&dd[i].a),dd[i].num=i;
sort(dd+1,dd+(1<<n)/2+1,cmp);
sort(dd+(1<<n)/2+1,dd+(1<<n)+1,cmp);
printf("%d",dd[(1<<n)/2].a<dd[(1<<n)].a?dd[(1<<n)/2].num:dd[(1<<n)].num);
return 0;
}

思路2

我们可以用队列来对此进行存储,把每个国家的信息全部输进队列当中存储,每一次弹出两个对此进行处理,最后赢得值又插入队列的尾部,一直处理到只剩两个元素的时候,输出小的那一个,但是题目的要求要我们求第几个国家我们开始可以用map对此进行映射,直接输出映射的结果,我们还可以用for对所有国家进行查找,找到的相对应的值就是我们的答案(因为题目说了每个国家的能力值一定不相同,所以我们有唯一的国家与我们的能力值相对应的)

建议要用map来映射,如果题目没说每个国家的能力值一定不相同的话,就会出问题。(如果有两个国家能力值相同的话,就不知道答案到底是哪一个国家了),map就不会出现这种问题,map是将答案和我们的能力值一一对应,找到正确的能力值就直接对应了正确的答案了

代码

#include<bits/stdc++.h>
using namespace std;
int main(){
queue<int>q;
int n;
cin>>n;
int nn=pow(2,n);
int a[nn+1];
for(int i=1;i<=nn;i++){
cin>>a[i];
q.push(a[i]);
}
int vis1,vis2;
while(q.size()!=2){
vis1=q.front();
q.pop();
vis2=q.front();
q.pop();
if(vis1>vis2){
q.push(vis1);
}
else{
q.push(vis2);
}
}
vis1=q.front();
q.pop();
vis2=q.front();
q.pop();
if(vis1>vis2){
q.push(vis2);
}
else{
q.push(vis1);
}
for(int i=1;i<=nn;i++){
if(a[i]==q.front()){
cout<<i;
return 0;
}
}
}

P4715 【深基16.例1】淘汰赛的更多相关文章

  1. 【vector+pair】洛谷 P4715 【深基16.例1】淘汰赛

    题目:P4715 [深基16.例1]淘汰赛 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题因为数据范围不大,所以做法可以非常简单,使用一个vector加上pair就可以了: ...

  2. P2240 【深基12.例1】部分背包问题

    P2240 [深基12.例1]部分背包问题 题目描述 阿里巴巴走进了装满宝藏的藏宝洞.藏宝洞里面有 N(N \le 100)N(N≤100) 堆金币,第 ii 堆金币的总重量和总价值分别是 m_i,v ...

  3. 洛谷 P5706 【深基2.例8】再分肥宅水

    题目连接: P5706 [深基2.例8]再分肥宅水 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 我提交的: 1 #include<iostream> 2 #inclu ...

  4. P3613 【深基15.例2】寄包柜

    传送门 题目大意 往一个\(a[i][j]\) 里边放东西,也可以取走东西,然后查询\(a[i][j]\)里边是什么东西. 思路: 显然我们可以暴力,但是你开不了那么大的数组. 翻了翻dalao们的题 ...

  5. P5727 【深基5.例3】冰雹猜想

    链接:Miku -------------------- 欸,为什么我第一遍没过 -------------------- #include<iostream> using namespa ...

  6. 题解 P5718 【【深基4.例2】找最小值】

    题目传送门 思路 介绍一种新方法--sort排序,它的格式是这样的sort(a+1,a+n+1,cmp);,我们只需要把a数组排好序,然后输出第\(1\)个元素即可. 定义a数组与变量\(n\)并输入 ...

  7. 题解 P5712 【【深基3.例4】Apples】

    题目传送门 思路 仔细读题后,我们可以发现,输出可以分成\(2\)种情况,apple加s与apple不加s,所以我们可以使用if/else来实现. 接着,我们读入n. int n; cin>&g ...

  8. 题解 P5733 【【深基6.例1】自动修正】

    题目传送门 分析: 1.这道题可以说是一个字符串的练习好题.我们先来了解一下字符串.在这道题中,建议使用\(string\) \(string\)是\(C++\).\(java\).\(VB\)等编程 ...

  9. 题解 P5318 【【深基18.例3】查找文献】

    题目传送门 根据本蒟蒻细致粗略的分析 这明显是一道水题模(du)板(liu)题 可我竟然没有一遍AC; 为更好地食用本题解需要了解以下内容 1.dfs(大法师深搜) 2.bfs(冰法师广搜)/dij最 ...

随机推荐

  1. json对象遍历顺序问题

    对json对象遍历我们一般使用for in循环,或者Object.keys + 数组方法.在接触js以来听到过一种说法: for in 遍历顺序是不可靠的 但是在实际开发中for in 循环也是按照其 ...

  2. Android开发之解决Error:(16) Error: "ssdk_baidutieba_client_inavailable" is not translated in "en" (Englis

    由于添加ShareSDK文件,导致打包突然报错, 错误信息: Error:(16) Error: "baidutieba_client_inavailable" is not tr ...

  3. 攻防世界——Misc新手练习区解题总结<2>(5-8题)

    第五题gif: 下载附件后,解压得到这样一个文件 几经寻找无果后,发现是不是可以将gif中的黑白图片看做二进制的数字,进而进行解密 最后用二进制转文本得到flag 第六题掀桌子: 看起来是16进制的密 ...

  4. cookies、sessionStorage和localStorage

    浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互.浏览器查看方式:  HTML4的本地存储 cookie 一.cookie和sess ...

  5. Fitness - 07.23 - Congratulation!

    倒计时161天 运动54分钟,共计5组半,5.8公里.拉伸5分钟. 每组跑步10分钟(6.5KM/h),走路1分钟(5.5KM/h). 终于突破了耐力跑的一天,可喜可贺! 差一点就到6公里了,觉得自己 ...

  6. 求支付表中按id累积和最接近100的那条记录

    此例源自美团的一道SQL面试题 支付表结构: create table hy_payment( id number(4,0) primary key, pay number(3,0) not null ...

  7. Eclipse插件打开编辑器

    今天终于可以闲一天,想来想去就乱写点东西吧,说不定对有些新人有点帮助呢-_- 用Eclipse API的方式来打开编辑器,可能对任何一个插件开发者都不是很陌生的操作了.但是,还是建议你忍着看一下,全当 ...

  8. Vue 事件的高级使用方法

    Vue 事件的高级使用方法 事件方法 在Vue中提供了4中事件监听方法,分别是: $on(event: string | Array, fn) $emit(event: string) $once(e ...

  9. C#开发PACS医学影像处理系统(三):界面布局之工具栏

    工具栏布局采用WPF中Grid作为容器,按钮采用自定义样式和图标,并采用Separator分割线: XAML设计器代码: 其中  Style="{StaticResource ButtonS ...

  10. python根据密钥得到谷歌两步验证动态验证码

    # coding=utf-8 import time import base64 import sys import hashlib import hmac import struct def goo ...