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最 ...
随机推荐
- 23种设计模式 - 接口隔离(Facade - Proxy - Mediator - Adapter)
其他设计模式 23种设计模式(C++) 每一种都有对应理解的相关代码示例 → Git原码 ⌨ 接口隔离 在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题.甚至根本无法实现.采用添加一层间接( ...
- redis数据库基础篇
一.Redis介绍 Redis 是一个高性能的key-value数据格式的内存缓存,NoSQL数据库.NOSQL:not only sql,泛指非关系型数据库.关系型数据库: (mysql, orac ...
- 用 Java 拿下 HTML 分分钟写个小爬虫
本文适合有 Java 基础知识的人群 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款开源 Java 版一款网页元素解析框架- ...
- React-Native知识点相关
React-Native相关 一,为什么要使用React-native? Hybrird的首屏时间太慢,白屏太久,影响用户体验: 原生native开发成本较高: 这里补充一点Webview的性能优化: ...
- Linux下命令设置别名--alias(同实用于mac)
最近在搞appium自动化脚本编写,过程中经常会使用 uiautomatorviewer这个工具查看UI布局和元素,但是不得不说这个单词太长了.. 如何快速使用,有三个小技巧,分别是: 1.设置好改工 ...
- C++轻量级跨平台文件系统API
http://en.cppreference.com/w/cpp/experimental/fs https://www.starmessagesoftware.com/cpcclibrary htt ...
- 转载: Nginx 通览
转载地址:https://developer.51cto.com/art/201912/608365.htm Nginx 简介 Nginx 是一个免费.开源.高性能.轻量级的 HTTP 和反向代理服务 ...
- URL 去重的 6 种方案!(附详细实现代码)
URL 去重在我们日常工作中和面试中很常遇到,比如这些: 可以看出,包括阿里,网易云.优酷.作业帮等知名互联网公司都出现过类似的面试题,而且和 URL 去重比较类似的,如 IP 黑/白名单判断等也经常 ...
- leetcode刷题-82.删除排序链表中的重复元素 II
题目 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5输出: 1- ...
- Prmise.all的简单实现
注意点 入参一般是个由Promise实例组成的数组,但是也可以不是数组,但必须具有 Iterator 接口,且返回的每个成员都是 Promise 实例.若参数如果不是 Promise 实例,就会先调用 ...