当前位置: 首页 > wzjs >正文

专门做婚姻法的网站宝和网站建设

专门做婚姻法的网站,宝和网站建设,食品销售公司网站制作,网站系统模版洛谷P4715 【深基16.例1】淘汰赛 题解 题目大意 有 (2^n) 名选手进行淘汰赛,每场比赛两人对决,能力值高者胜出;若能力值相同,则编号较小者胜出。最终决出冠军,要求输出亚军的编号。 解题思路 关键观察:…

洛谷P4715 【深基16.例1】淘汰赛 题解

题目大意

有 (2^n) 名选手进行淘汰赛,每场比赛两人对决,能力值高者胜出;若能力值相同,则编号较小者胜出。最终决出冠军,要求输出亚军的编号。

解题思路

关键观察:亚军是决赛中与冠军对决的选手。而冠军必定是全局能力值最大的选手,亚军则是另一半区中能力值最大的选手。

分治策略

  1. 将选手分为左右两半区。
  2. 分别找出左右半区的最大值及其位置。
  3. 比较左右半区的最大值,较大的为冠军,另一半区的最大值即为亚军。
代码解释
#include <bits/stdc++.h>
using namespace std;int power[1025] = {}; // 存储选手能力值
int n;int main() {cin >> n;int h = pow(2, n); // 总人数for (int i = 1; i <= h; ++i) cin >> power[i]; // 输入能力值(编号从1开始)int le_max = 0, ri_max = 0;int le_idx = 1, ri_idx = h / 2 + 1;// 找左半区最大值for (int i = 1; i <= h / 2; ++i) {if (power[i] > le_max) {le_max = power[i];le_idx = i;}}// 找右半区最大值for (int i = h / 2 + 1; i <= h; ++i) {if (power[i] > ri_max) {ri_max = power[i];ri_idx = i;}}// 比较两半区最大值,输出亚军编号if (le_max > ri_max) cout << ri_idx;else cout << le_idx;return 0;
}
代码逻辑分析
  1. 输入处理:读取 (n) 和 (2^n) 个能力值,存入数组 power(编号从1开始)。
  2. 分半区查找
    • 左半区(前 (2^{n-1}) 个)遍历找到最大值 le_max 及其位置 le_idx
    • 右半区(后 (2^{n-1}) 个)同理找到 ri_maxri_idx
  3. 决赛对决:比较两半区最大值,较大的为冠军,另一半区的最大值位置即为亚军。
关键细节
  • 编号处理:数组从1开始存储,避免与C++中 pow(2, n) 的索引混淆。
  • 相等能力值:当能力值相同时,代码默认保留先遇到的选手(编号较小),符合题意。
复杂度分析
  • 时间复杂度:(O(2^n)),需遍历数组两次。
  • 空间复杂度:(O(2^n)),存储能力值数组。
示例说明

样例输入

2
5 4 3 2

执行过程

  1. 左半区 [5, 4] 最大值为5(位置1)。
  2. 右半区 [3, 2] 最大值为3(位置3)。
  3. 比较5和3,5胜出为冠军,亚军为右半区的3(位置3)。

输出

3
注意事项
  • 数组越界:确保输入人数为 (2^n),避免访问 power[h+1]
  • 特殊情况:当 (n=0) 时需单独处理(题目保证 (n \geq 1))。
总结

本题通过分治思想,将问题简化为两半区的局部最大值比较,避免了完整模拟淘汰赛的高复杂度。代码简洁高效,关键在于理解亚军必为另一半区最大值的逻辑。


文章转载自:

http://fnky0zSS.cLzLy.cn
http://V7DUCfO6.cLzLy.cn
http://fVDeDugO.cLzLy.cn
http://jLQzC7r9.cLzLy.cn
http://2xxvVepl.cLzLy.cn
http://NnrbqECi.cLzLy.cn
http://II0QRQpE.cLzLy.cn
http://vGXgUO4x.cLzLy.cn
http://vBFnpmC7.cLzLy.cn
http://zKnNigx3.cLzLy.cn
http://Y3bvXkOJ.cLzLy.cn
http://e5cPmD7P.cLzLy.cn
http://8onvY9yP.cLzLy.cn
http://4kgN4YoU.cLzLy.cn
http://k6tpPWgf.cLzLy.cn
http://mFtgelrj.cLzLy.cn
http://aEiBW3Fh.cLzLy.cn
http://5YiE1gj9.cLzLy.cn
http://J8rzQPwt.cLzLy.cn
http://2qQCF9c3.cLzLy.cn
http://6mhHyk2q.cLzLy.cn
http://pMD0EBYJ.cLzLy.cn
http://Ltg2dXpS.cLzLy.cn
http://EjhBFJo4.cLzLy.cn
http://TOeUkmtR.cLzLy.cn
http://87n3BeuC.cLzLy.cn
http://WW6qSfxc.cLzLy.cn
http://K2BRhUBz.cLzLy.cn
http://rZGPLhZd.cLzLy.cn
http://Sh52nvFC.cLzLy.cn
http://www.dtcms.com/wzjs/685216.html

相关文章:

  • 住房城乡住房和城乡建设部网站网站上面的内容里面放照片怎么做的
  • 郑州网站建设方案佛山网站建设哪家评价高
  • 布吉网站建设哪家便宜php网站开发作业
  • 青岛网站运营庄行网站建设
  • 杭州建设工程招标平台官网网站优化升级怎么做
  • 安徽网新科技有限公司 网站开发个人注册企业查询
  • 做的网站放在阿里云h5网站制作报价
  • 青岛中小企业建设网站有扶持资金吗网站建设工作室创业计划书
  • 做一个网站需要多少钱大概360客户如何做网站推广
  • 如何做网站流量报告做网站哪个语言快
  • 常用的网站开发技术有哪几种海外网络推广收费
  • 网站设计的必要性瑞安网站制作
  • pc建站网站做资讯需要获取许可证吗
  • 医疗类网站源码wordpress店铺
  • 南京电商网站开发公司wordpress个人建站教程
  • 凤阳县建设局网站快速构建网站
  • 苏州网站的优化温州开发网站公司哪家好
  • 为什么自己花钱做的网站竟然不是自己的 (wordpress 浏览器缓存
  • cms建站详细教程响应式布局的原理
  • 一起做玩具网站河南网站设计价格
  • 外贸网站推广策划建网站的成本计算
  • 获取网站访客qq号注册安全工程师题库
  • 用asp做网站新手卖家做来赞达网站如何
  • 淄博周村网站建设方案如何做一个好的wordpress
  • 创联互动建设网站网站建设价格
  • 织梦网站地图优化网站模板免费下载网站
  • 哪家微信网站建设好软件开发排名
  • 聊城网站那家做的好游戏开发引擎
  • 河南中安建设集团有限公司网站苏州建交建设工程有限公司
  • 校园网站建设提升郑州妇科医院免费咨询