news 2026/5/12 19:34:06

2024信奥赛C++提高组csp-s复赛真题及题解:决斗

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2024信奥赛C++提高组csp-s复赛真题及题解:决斗

2024信奥赛C++提高组csp-s复赛真题及题解:决斗

题目描述

今天是小 Q 的生日,他得到了n nn张卡牌作为礼物。这些卡牌属于火爆的“决斗怪兽”,其中,第i ii张卡代表一只攻击力为r i r_iri,防御力也为r i r_iri的怪兽。

一场游戏分为若干回合。每回合,小 Q 会选择某只怪兽i ii以及另一只怪兽j ( i ≠ j ) j(i \neq j)j(i=j),并让怪兽i ii向怪兽j jj发起攻击。此时,若怪兽i ii的攻击力小于等于怪兽j jj的防御力,则无事发生;否则,怪兽j jj的防御被打破,怪兽j jj退出游戏不再参与到剩下的游戏中。一只怪兽在整场游戏中至多只能发起一次攻击。当未退出游戏的怪兽都已发起过攻击时,游戏结束。

小 Q 希望决定一组攻击顺序,使得在游戏结束时,未退出游戏的怪兽数量尽可能少。

输入格式

输入的第一行包含一个正整数n nn,表示卡牌的个数。

输入的第二行包含n nn个正整数,其中第i ii个正整数表示第i ii个怪兽的攻击力及防御力r i r_iri

输出格式

输出一行包含一个整数表示游戏结束时未退出游戏的怪兽数量的最小值。

输入输出样例 1
输入 1
5 1 2 3 1 2
输出 1
2
输入输出样例 2
输入 2
10 136 136 136 2417 136 136 2417 136 136 136
输出 2
8
说明/提示
【样例 1 解释】

其中一种最优方案为:第一回合让第2 22只怪兽向第1 11只怪兽发起攻击,第二回合让第5 55只怪兽向第4 44只怪兽发起攻击,第三回合让第3 33只怪兽向第5 55只怪兽发起攻击。此时没有退出游戏的怪兽都进行过攻击,游戏结束。可以证明没有更优的攻击顺序。

【数据范围】

对于所有测试数据,保证:1 ≤ n ≤ 10 5 1 \leq n \leq 10^51n1051 ≤ r i ≤ 10 5 1 \leq r_i \leq 10^51ri105

测试点n nnr i r_iri特殊性质
1 ∼ 4 1\sim 414≤ 10 \leq 1010≤ 10 5 \leq 10^5105无特殊性质
5 ∼ 10 5\sim 10510≤ 10 5 \leq 10^5105≤ 2 \leq 22^
11 ∼ 15 11\sim 151115≤ 30 \leq 3030≤ 10 5 \leq 10^5105特殊性质 A
16 ∼ 20 16\sim 201620≤ 10 5 \leq 10^5105^无特殊性质

特殊性质 A:保证每个r i r_iri在可能的值域中独立均匀随机生成。

思路分析

题目要求通过安排怪兽的攻击顺序,使得游戏结束时未退出游戏的怪兽数量尽可能少。经过分析,可以得出一个关键结论:最终存活的怪兽数量恰好等于所有攻击力中出现次数的最大值。这是因为在最优策略下,只有出现次数最多的那些攻击力的怪兽能够存活,其余攻击力的怪兽都可以被淘汰。

算法思路
  1. 统计每个攻击力值出现的次数。
  2. 找出出现次数的最大值。
  3. 该最大值即为最终存活怪兽的最小数量。
时间复杂度
  • 读取输入和统计出现次数:O(n)
  • 查找最大值:O(max(r i r_iri)),其中r i ≤ 10 5 r_i ≤ 10^5ri105
  • 总体复杂度为 O(n + max(r i r_iri)),在给定数据范围内完全可行。

代码实现

#include<bits/stdc++.h>usingnamespacestd;constintMAXR=100010;// r_i 的最大值intcnt[MAXR];// 统计每个攻击力出现的次数,数组下标对应攻击力值intmain(){intn;// 怪兽数量cin>>n;intmaxCnt=0;// 记录出现次数的最大值for(inti=0;i<n;i++){intr;cin>>r;cnt[r]++;// 攻击力为 r 的怪兽数量加1maxCnt=max(maxCnt,cnt[r]);// 更新最大值}// 输出结果:最终存活怪兽的最小数量等于最大出现次数cout<<maxCnt<<endl;return0;}

功能分析

  1. 输入处理:读取怪兽数量 n 和每个怪兽的攻击力 r_i。
  2. 统计频率:使用数组cnt记录每个攻击力值出现的次数。
  3. 求最大值:在统计过程中实时更新出现次数的最大值。
  4. 输出结果:最大值即为最终存活怪兽的最小数量。

算法证明

  • 贪心策略:从大到小处理攻击力值,每次尽可能用当前可用的攻击次数淘汰当前攻击力的怪兽。可用的攻击次数始终是历史出现次数的最大值。
  • 最终存活数量等于最终可用的攻击次数,即所有攻击力中出现次数的最大值。
  • 因此,直接输出最大出现次数即可得到最优解。

各种学习资料,助力大家一站式学习和提升!!!

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}

1、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html

2、csp信奥赛冲刺一等奖有效刷题题解:

CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

CSP信奥赛C++一等奖通关刷题题单及题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

3、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html

4、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 16:32:14

基于SpringBoot的健身房管理系统(源码+lw+部署文档+讲解等)

课题介绍 随着全民健康理念的普及&#xff0c;健身房行业快速发展&#xff0c;但当前多数健身房仍采用传统人工管理模式&#xff0c;存在会员信息杂乱、课程预约不便、教练管理不规范、器材维护跟踪不及时、消费结算繁琐等问题&#xff0c;既增加了健身房的运营管理成本&#x…

作者头像 李华
网站建设 2026/5/10 19:13:59

存储器和寄存器的区别以及存储器映像-新手小白必看

一、寄存器 ≠ 存储器- 本质区别- 存储器&#xff08;Memory&#xff09;&#xff1a;是一片连续的存储区域&#xff0c;主要用来存程序代码、变量、数据等&#xff0c;比如我们常说的 Flash 和 SRAM。它的地址是连续的&#xff0c;就像一个大仓库&#xff0c;按地址来存取。- …

作者头像 李华
网站建设 2026/5/10 19:39:26

基于SpringBoot+Vue框架的高校论坛系统(源码+lw+部署文档+讲解等)

课题介绍 在高校数字化校园建设不断推进的背景下&#xff0c;传统线下交流模式已无法满足师生多样化的沟通需求&#xff0c;现有高校交流平台普遍存在功能单一、交互性差、内容审核不规范、权限划分不清晰等问题&#xff0c;难以搭建起高效、安全、便捷的师生交流桥梁。为此&am…

作者头像 李华
网站建设 2026/5/8 15:27:59

Jimeng AI Studio开箱体验:极简界面下的强大影像生成能力

Jimeng AI Studio开箱体验&#xff1a;极简界面下的强大影像生成能力 1. 初见即惊艳&#xff1a;为什么这款影像工具让人一眼记住&#xff1f; 第一次点开 Jimeng AI Studio 的界面&#xff0c;我下意识停顿了两秒——不是因为卡顿&#xff0c;而是被它的“空”震住了。 没有…

作者头像 李华
网站建设 2026/5/12 11:58:08

SuperX宣布首个全球供应中心正式投产

2026年1月30日&#xff0c;领先的人工智能&#xff08;AI&#xff09;数据中心基础设施解决方案供应商SuperX AI Technology Limited&#xff08;纳斯达克股票代码&#xff1a;SUPX&#xff0c;简称「公司」或「SuperX」&#xff09;今日宣布&#xff0c;其位于日本三重县津市&…

作者头像 李华
网站建设 2026/5/10 0:05:44

MedGemma X-Ray科研价值:纵向随访影像变化趋势AI追踪分析

MedGemma X-Ray科研价值&#xff1a;纵向随访影像变化趋势AI追踪分析 1. 为什么纵向影像追踪是临床研究的“隐形瓶颈” 你有没有遇到过这样的情况&#xff1a;手头有患者连续3年、每年2次的胸部X光片&#xff0c;想观察肺结节是否缓慢增大&#xff0c;或间质性改变是否逐步进…

作者头像 李华