news 2026/1/9 23:31:20

GESP认证C++编程真题解析 | P10108 [GESP202312 六级] 闯关游戏

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GESP认证C++编程真题解析 | P10108 [GESP202312 六级] 闯关游戏

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:GESP认证C++编程真题解析 | 汇总


【题目来源】

洛谷:[P10108 GESP202312 六级] 闯关游戏 - 洛谷

【题目描述】

你来到了一个闯关游戏。

这个游戏总共有N NN关,每关都有M MM个通道,你需要选择一个通道并通往后续关卡。其中,第i ii个通道可以让你前进a i a_iai关,也就是说,如果你现在在第x xx关,那么选择第i ii个通道后,你将直接来到第x + a i x+a_ix+ai关(特别地,如果x + a i ≥ N x + a_i \geq Nx+aiN,那么你就通关了)。此外,当你顺利离开第s ss关时,你还将获得b s b_sbs分。

游戏开始时,你在第0 00关。请问,你通关时最多能获得多少总分。

【输入】

第一行两个整数N NNM MM,分别表示关卡数量和每关的通道数量。

接下来一行M MM个用单个空格隔开的整数a 0 , a 1 ⋯ , a M − 1 a_0,a_1\cdots,a_{M-1}a0,a1,aM1。保证1 ≤ a i ≤ N 1\le a_i \le N1aiN

接下来一行N NN个用单个空格隔开的整数b 0 , b 1 ⋯ , b N − 1 b_0,b_1\cdots,b_{N-1}b0,b1,bN1。保证∣ b i ∣ ≤ 1 0 5 |b_i|\le 10^5bi105

【输出】

一行一个整数,表示你通关时最多能够获得的分数。

【输入样例】

6 2 2 3 1 0 30 100 30 30

【输出样例】

131

【算法标签】

《洛谷 P10108 闯关游戏》 #动态规划DP# #GESP# #2023#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=200005;// 最大数组长度intn,m;// n: 天数, m: 药材种类数intmaxn=-1;// 最大的生长天数inta[N],b[N];// a: 药材生长天数, b: 每天可种植的药材价值intdp[N];// dp[i]: 在第i天结束时的最大总价值intmain(){// 输入药材种类数和总天数cin>>m>>n;// 输入每种药材的生长天数for(inti=1;i<=m;i++){cin>>a[i];maxn=max(maxn,a[i]);// 记录最长的生长周期}// 输入每天可种植的药材价值for(inti=1;i<=n;i++){cin>>b[i];}// 初始化dp数组为极小值memset(dp,-0x3f,sizeof(dp));dp[1]=0;// 第1天开始时,总价值为0// 动态规划// 注意:这里循环到n+maxn,因为药材可能在n天后成熟for(inti=1;i<=n+maxn;i++){for(intj=1;j<=m;j++){// 如果i-a[j]天是有效的(≥1)if(i-a[j]>=1){// 状态转移:在第i-a[j]天种植,在第i天收获dp[i]=max(dp[i],dp[i-a[j]]+b[i-a[j]]);}}}// 调试输出// for (int i=1; i<=n+maxn; i++)// cout << dp[i] << " ";// cout << endl;// 寻找最大价值// 只需要考虑n天之后到n+maxn天之间的最大值intans=-1e9;for(inti=n+1;i<=n+maxn;i++){ans=max(ans,dp[i]);}// 输出结果cout<<ans<<endl;return0;}

【运行结果】

6 2 2 3 1 0 30 100 30 30 131
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/1 18:32:51

Java消息队列入门指南(RabbitMQ与Spring Boot实战教程)

在现代软件开发中&#xff0c;Java消息队列是实现系统解耦、异步处理和流量削峰的关键技术。本教程将手把手带你从零开始&#xff0c;使用RabbitMQ作为消息中间件&#xff0c;在Spring Boot项目中实现一个完整的异步通信Java示例。即使你是编程小白&#xff0c;也能轻松上手&am…

作者头像 李华
网站建设 2026/1/1 7:18:10

Open-AutoGLM极地适配技术白皮书(仅限内部流出的3大核心算法改进)

第一章&#xff1a;Open-AutoGLM 极地科考适配优化在极端环境如极地科考任务中&#xff0c;计算资源受限、网络通信不稳定以及低温硬件运行问题对AI模型的部署提出了严峻挑战。Open-AutoGLM 作为一款轻量化大语言模型推理框架&#xff0c;通过结构压缩与算子融合技术&#xff0…

作者头像 李华
网站建设 2025/12/30 7:38:21

揭秘Open-AutoGLM通信延迟优化策略:提升深海协同效率的3个关键步骤

第一章&#xff1a;Open-AutoGLM深海协同通信的挑战与愿景在探索海洋深处信息交互机制的过程中&#xff0c;Open-AutoGLM作为新一代面向深海环境的智能语言模型协同框架&#xff0c;致力于打通水下传感节点与地面控制中心之间的语义鸿沟。其核心目标是实现多模态数据&#xff0…

作者头像 李华
网站建设 2026/1/1 14:37:09

【掌握未来社区主动权】:Open-AutoGLM驱动的5大服务联动场景

第一章&#xff1a;【掌握未来社区主动权】&#xff1a;Open-AutoGLM驱动的5大服务联动场景在智能化社区生态加速演进的今天&#xff0c;Open-AutoGLM 作为开源自治语言模型引擎&#xff0c;正成为连接物理空间与数字服务的核心枢纽。其通过自然语言理解、任务编排与多系统接口…

作者头像 李华