P4715 【深基16.例1】淘汰赛
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】淘汰赛的更多相关文章
- 【vector+pair】洛谷 P4715 【深基16.例1】淘汰赛
题目:P4715 [深基16.例1]淘汰赛 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题因为数据范围不大,所以做法可以非常简单,使用一个vector加上pair就可以了: ...
- P2240 【深基12.例1】部分背包问题
P2240 [深基12.例1]部分背包问题 题目描述 阿里巴巴走进了装满宝藏的藏宝洞.藏宝洞里面有 N(N \le 100)N(N≤100) 堆金币,第 ii 堆金币的总重量和总价值分别是 m_i,v ...
- 洛谷 P5706 【深基2.例8】再分肥宅水
题目连接: P5706 [深基2.例8]再分肥宅水 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 我提交的: 1 #include<iostream> 2 #inclu ...
- P3613 【深基15.例2】寄包柜
传送门 题目大意 往一个\(a[i][j]\) 里边放东西,也可以取走东西,然后查询\(a[i][j]\)里边是什么东西. 思路: 显然我们可以暴力,但是你开不了那么大的数组. 翻了翻dalao们的题 ...
- P5727 【深基5.例3】冰雹猜想
链接:Miku -------------------- 欸,为什么我第一遍没过 -------------------- #include<iostream> using namespa ...
- 题解 P5718 【【深基4.例2】找最小值】
题目传送门 思路 介绍一种新方法--sort排序,它的格式是这样的sort(a+1,a+n+1,cmp);,我们只需要把a数组排好序,然后输出第\(1\)个元素即可. 定义a数组与变量\(n\)并输入 ...
- 题解 P5712 【【深基3.例4】Apples】
题目传送门 思路 仔细读题后,我们可以发现,输出可以分成\(2\)种情况,apple加s与apple不加s,所以我们可以使用if/else来实现. 接着,我们读入n. int n; cin>&g ...
- 题解 P5733 【【深基6.例1】自动修正】
题目传送门 分析: 1.这道题可以说是一个字符串的练习好题.我们先来了解一下字符串.在这道题中,建议使用\(string\) \(string\)是\(C++\).\(java\).\(VB\)等编程 ...
- 题解 P5318 【【深基18.例3】查找文献】
题目传送门 根据本蒟蒻细致粗略的分析 这明显是一道水题模(du)板(liu)题 可我竟然没有一遍AC; 为更好地食用本题解需要了解以下内容 1.dfs(大法师深搜) 2.bfs(冰法师广搜)/dij最 ...
随机推荐
- 聊一聊RocketMQ的注册中心NameServer
前言 上次我们一起了解了RocketMQ的基本架构原理,那简单的回顾一下RocketMQ的架构组成. RocketMQ其实包含了四个核心部分,NameServer.Broker.Producer.Co ...
- App性能测试前需要了解的内存原理
这两天在研究性能中内存方面的一块,网上也零散看了挺多文章,写得很细但是感觉不够整体,所以这篇算是总结一下吧,当个复习资料. 那么这里个人分为两个大部分,第一部分应用内的内存管理,主要是oom的理解,G ...
- 05 element.ui 全局配置
element.ui css样式在组件里面改有的不会生效,是因为加了scoped.局部作用,放在这里是全局配置
- ElasticSearch7.6.1 概述
本来打算重新回去看 并发编程的,之前看过一遍,现在基本忘完了,然后因为考虑到项目的需要,就先看ES了 然后再B站上看到一个视屏比较火,就看这个吧 给大家推荐一下 https://www.bilibil ...
- Zabbix如何监控Linux防火墙服务
今天在巡检的时候,突然想到Zabbix能否监控Linux的防火墙服务呢? 显然是可以的,但是Zabbix 5下默认的模板"Template OS Linux by Zabbix agent& ...
- webstorm单标签设置成双标签展开解决iview中col展开问题
大家好!我是木瓜太香,今天给大家带来一个 webstorm 小技巧 场景:有使用过 vue 框架并且使用 iview 做 ui webstorm 做 ide 的同学,可能会遇到一个比较奇怪的问题,iv ...
- VSCode注册关联自定义类型文件
打开你要注册的文件类型文件[本文中用 ".txt"到".lua"演示] 在VSCode窗口右下角有当前文件类型"Plain Text" 是可 ...
- 在express中使用ES7装饰器构建路由
在Java的Spring框架中,我们经常会看到类似于@Controller这样的注解,这类代码能够极大的提高我们代码的可读性和复用性.而在Javascript的ES7提案中,有一种新的语法叫做deco ...
- Redis之命令详解
Redis命令手册:http://doc.redisfans.com/
- python守护线程t.setDaemon(True)
守护线程是守护主线程 t.setDaemon(True),调用函数里面存在等待时间时,只要设置了守护线程,函数中等待时间下面的代码都不会再执行