首页/新闻资讯/正文详情

UVa 12450 SpaceRecon Tournament

发布时间:2026/9/24 23:38:07 来源:云帆数科 栏目:资讯中心
UVa 12450 SpaceRecon Tournament
题目描述SpaceRecon\texttt{SpaceRecon}SpaceRecon是一款201120112011年流行的实时策略游戏支持三种种族。游戏内置了Actionweb\texttt{Actionweb}Actionweb平台用于举办2M2^{M}2M名玩家参加的锦标赛。锦标赛采用单败淘汰制共MMM轮。前RRR轮RRR未公开为三局两胜制需赢222局晋级剩余M−RM - RM−R轮为五局三胜制需赢333局晋级。每轮比赛胜者晋级败者淘汰不会进行不必要的对局。赛后平台公布每位玩家的昵称以及他们在整个锦标赛中赢得的单局总场次即所有轮次中赢得的对局数之和。给定这些数据你需要推断每位玩家实际晋级到了第几轮即赢了多少轮并按照晋级轮数降序输出玩家昵称若晋级轮数相同则按昵称字典序升序输出。输入格式第一行一个整数NNN1≤N≤1001 \le N \le 1001≤N≤100表示测试用例数。每个测试用例以一行整数MMM1≤M≤101 \le M \le 101≤M≤10开始接下来有2M2^{M}2M行每行包含一个玩家昵称由字母数字组成长度111到161616和一个整数www表示该玩家的总胜场数。输入保证数据来自一个合法的锦标赛。输出格式对于每个测试用例输出2M2^{M}2M行每行一个玩家昵称按照题目要求排序。样例输入1 2 John 1 Jake 5 Joe 4 Jane 0输出Jake Joe Jane John题目分析本题的关键在于虽然RRR未知但每位玩家的总胜场www与他的晋级轮数kkk之间存在严格的数量关系。设某玩家晋级了kkk轮0≤k≤M0 \le k \le M0≤k≤M其中kMkMkM表示冠军。由于前RRR轮是BO3\texttt{BO3}BO3三局两胜后M−RM - RM−R轮是BO5\texttt{BO5}BO5五局三胜因此该玩家要至少赢得minWins(k)2⋅min⁡(k,R)3⋅max⁡(0,k−R) \text{minWins}(k) 2 \cdot \min(k, R) 3 \cdot \max(0, k - R)minWins(k)2⋅min(k,R)3⋅max(0,k−R)局比赛。若kMk MkM说明他在第k1k1k1轮被淘汰而他在被淘汰的那一轮中还可以赢得一些局但未达到晋级所需局数。被淘汰的那一轮如果是BO3\texttt{BO3}BO3他最多还能赢111局如果是BO5\texttt{BO5}BO5最多还能赢222局。因此对于kMk MkM他的总胜场www必须满足minWins(k)≤w≤minWins(k)extra(k1) \text{minWins}(k) \le w \le \text{minWins}(k) \text{extra}(k1)minWins(k)≤w≤minWins(k)extra(k1)其中extra(r)1\text{extra}(r) 1extra(r)1若r≤Rr \le Rr≤R或222若rRr RrR。注意rk1r k1rk1是他被淘汰的轮次号。对于冠军kMkMkM则总胜场恰好等于minWins(M)\text{minWins}(M)minWins(M)不存在额外胜场。由于上述区间互不重叠可以证明因此对于一个给定的RRR每个玩家的总胜场www唯一对应一个kkk。我们可以枚举所有可能的RRR0≤R≤M0 \le R \le M0≤R≤M对每个RRR计算出每个玩家的kkk然后检查这些kkk的频数是否符合单败淘汰赛的客观规律在2M2^{M}2M名玩家的锦标赛中晋级kkk轮0≤kM0 \le k M0≤kM的玩家数必须为2M−1−k2^{M-1-k}2M−1−k而冠军kMkMkM的人数必须为111。如果某个RRR满足上述所有条件则这个RRR就是合法的对应的kkk就是每位玩家的实际晋级轮数。解题思路预处理区间对于给定的MMM和枚举的RRR定义函数getRound(w,M,R)\texttt{getRound}(w, M, R)getRound(w,M,R)它遍历kkk从000到MMM计算出minWins(k)\text{minWins}(k)minWins(k)和上界maxWins(k)\text{maxWins}(k)maxWins(k)对kMkMkM为minWins(k)extra(k1)\text{minWins}(k)\text{extra}(k1)minWins(k)extra(k1)对kMkMkM就是minWins(M)\text{minWins}(M)minWins(M)若www落在[minWins(k),maxWins(k)][\text{minWins}(k), \text{maxWins}(k)][minWins(k),maxWins(k)]内则返回kkk否则返回−1-1−1。枚举合法RRR外层循环R0…MR 0 \dots MR0…M内层对所有玩家调用getRound\texttt{getRound}getRound如果任何玩家返回−1-1−1则RRR无效。否则统计频数数组cnt[k]\textit{cnt}[k]cnt[k]。检查对于所有0≤kM0 \le k M0≤kM是否有cnt[k]2M−1−k\textit{cnt}[k] 2^{M-1-k}cnt[k]2M−1−k并且cnt[M]1\textit{cnt}[M] 1cnt[M]1。若成立则当前RRR是合法的记录每个玩家的kkk并跳出枚举。排序输出将每个玩家的晋级轮数kkk作为排序关键字按kkk降序排列若kkk相同按昵称字典序升序排列。依次输出昵称。复杂度分析每个测试用例中枚举RRR的次数为O(M)O(M)O(M)最多111111次每次对2M2^{M}2M个玩家最多102410241024个计算kkk每次计算需遍历M1M1M1个可能值因此总体时间复杂度为O(N⋅M⋅2M⋅M)≈O(100×10×1024×10)≈107O(N \cdot M \cdot 2^{M} \cdot M) \approx O(100 \times 10 \times 1024 \times 10) \approx 10^7O(N⋅M⋅2M⋅M)≈O(100×10×1024×10)≈107完全可以接受。空间复杂度O(2M)O(2^{M})O(2M)。代码实现// SpaceRecon Tournament// UVa ID: 12450// Verdict: Accepted// Submission Date: 2026-06-22// UVa Run Time: 0.000s//// 版权所有C2026邱秋。metaphysis # yeah dot net#includebits/stdc.husingnamespacestd;structPlayer{string handle;intwins;introundSurvived;// 晋级轮数 k};// 计算给定胜场 wins 在总轮数 M、前 R 轮为 BO3 的情况下玩家晋级的轮数 kintgetRound(intwins,intM,intR){for(intk0;kM;k){intminW2*min(k,R)3*max(0,k-R);// 晋级 k 轮至少需要的胜场intmaxW;if(kM){maxWminW;// 冠军没有淘汰轮胜场固定}else{intnextRoundk1;// 被淘汰的轮次intmaxExtra(nextRoundR)?1:2;// BO3 最多赢 1 局BO5 最多赢 2 局maxWminWmaxExtra;}if(winsminWwinsmaxW)returnk;}return-1;// 无法匹配}intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);intN;cinN;while(N--){intM;cinM;inttotal1M;vectorPlayerplayers(total);for(inti0;itotal;i){cinplayers[i].handleplayers[i].wins;}intvalidR-1;vectorintrounds(total);// 枚举 Rfor(intR0;RM;R){vectorintcnt(M1,0);booloktrue;vectorintcurRounds(total);for(inti0;itotal;i){intkgetRound(players[i].wins,M,R);if(k-1){okfalse;break;}curRounds[i]k;cnt[k];}if(!ok)continue;// 检查频数是否符合淘汰赛结构for(intk0;kM;k){if(cnt[k]!(1(M-1-k))){okfalse;break;}}if(okcnt[M]1){validRR;roundscurRounds;break;}}// 将计算结果赋给玩家for(inti0;itotal;i)players[i].roundSurvivedrounds[i];// 排序先按晋级轮数降序再按昵称字典序升序sort(players.begin(),players.end(),[](constPlayera,constPlayerb){if(a.roundSurvived!b.roundSurvived)returna.roundSurvivedb.roundSurvived;returna.handleb.handle;});// 输出for(constautop:players)coutp.handle\n;}return0;}总结本题的核心是逆向推断锦标赛轮次。由于RRR未知但每位玩家的总胜场提供了足够信息我们可以枚举RRR并利用晋级轮数与胜场数的单调区间映射再通过单败淘汰赛的固有频数分布来验证合法性。这种方法避免了复杂的树结构重建直接利用数量关系实现了简洁高效的判定。技巧上注意区间不重叠的性质是枚举可行的前提同时由于MMM很小≤10\le 10≤10枚举所有可能RRR是完全可行的。该题思路同样适用于其他存在未知规则参数的类似问题。

相关推荐

基于RankIQA的无参考图像质量评价与人脸识别应用
基于RankIQA的无参考图像质量评价与人脸识别应用

简介:基于Python的无参考图像质量评价实现,包含完整源码与配套数据,面向图像处理与计算机视觉方向的学生和开发者。压缩包内共274个文件,压缩后约12.37MB,其中包含163个Python脚本、Caffe模型配置(prototxt… · 2026/9/24 23:38:07

Buck-Boost电路建模:从状态空间平均到环路补偿实战
Buck-Boost电路建模:从状态空间平均到环路补偿实战

简介:面向电力电子、开关电源方向的学生与工程师,这是一份关于Buck-Boost电路建模与分析的完整技术文档。文档从稳态分析入手,梳理连续导通模式(CCM)与非连续导通模式(DCM)下的电压转换关系&… · 2026/9/24 23:38:00

Claude Code团队级配置:从API密钥治理到AI工程流水线
Claude Code团队级配置:从API密钥治理到AI工程流水线

1. 这不是“装个插件就完事”的配置——Claude Code 是 AI 工程团队的协作操作系统你搜“Claude Code 配置指南”,刷出来的大多是“三步安装 VS Code 插件”“复制粘贴 API Key 就能用”。但如果你真带过 3 人以上的开发团队,或者正在从零搭建一个能稳定… · 2026/9/24 23:38:00

ArcMap拓扑实战:从空间数据质量管控到业务规则落地
ArcMap拓扑实战:从空间数据质量管控到业务规则落地

1. 这不是“画图软件里的花架子”:ArcMap拓扑到底在解决什么真问题?很多人第一次点开ArcMap的“拓扑”菜单时,心里想的是:“不就是让线头对齐、面不重叠吗?我手动修修不就行了?”——这话放在十年前做乡镇土… · 2026/9/25 22:04:50

如何快速调优 MindSpeed LLM FSDP2 后端:Profiling 定位性能瓶颈实战指南
如何快速调优 MindSpeed LLM FSDP2 后端:Profiling 定位性能瓶颈实战指南

如何快速调优 MindSpeed LLM FSDP2 后端:Profiling 定位性能瓶颈实战指南 【免费下载链接】MindSpeed-LLM 昇腾LLM分布式训练框架 项目地址: https://gitcode.com/Ascend/MindSpeed-LLM 在昇腾 NPU 上使用 MindSpeed LLM 的 FSDP2 后端做分布式训练时&#x… · 2026/9/25 22:04:50

Agent技能系统设计实战:从函数调用到可复用能力单元
Agent技能系统设计实战:从函数调用到可复用能力单元

前几天和一个做AI应用的朋友聊天,他吐槽说现在接大模型接口写Agent,最头疼的不是模型能力不够,而是把“让模型干活”这件事做得可靠。他团队里十几个Agent,每个都挂了一堆函数,有的叫get_weather,有的叫fet… · 2026/9/25 22:04:50

社区医疗系统源码部署与二次开发全攻略:跑通门诊、药房、收费闭环
社区医疗系统源码部署与二次开发全攻略:跑通门诊、药房、收费闭环

简介:这是一份面向Java开发学习者的社区医疗系统完整项目源码,适用于计算机、数学、电子信息等专业的学生作为课程设计、期末大作业或毕业设计的参考实现。项目基于常见JavaWeb技术栈,包含业务逻辑、页面展示与数据库脚本,可帮助使… · 2026/9/25 22:04:37

8款实用AI论文软件横向实测,本硕博撰稿避坑全指南
8款实用AI论文软件横向实测,本硕博撰稿避坑全指南

前言:AI 写论文乱象频发,实测 8 款工具理清适配边界 每到毕业季,本科生、硕博生都会集中寻找 AI 论文辅助工具,市面各类写作软件层出不穷。然而,这些工具普遍存在几大硬伤:参考文献造假、无法匹配本校格式要… · 2026/9/25 22:04:18

2026 Turnitin 查重和 AI 检测都不过?一站式降AIGC网站实测推荐
2026 Turnitin 查重和 AI 检测都不过?一站式降AIGC网站实测推荐

一、前言:2026 高校论文审核新难题随着高校学术审核体系不断升级,知网、维普等主流检测平台全面上线AIGC 智能检测功能,当代毕业生的论文写作与修改迎来双重考验。以往论文仅需攻克重复率超标问题,如今还要规避 AI 写作痕迹检测风… · 2026/9/25 22:04:18

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码