news 2026/4/16 10:59:03

GESP认证C++编程真题解析 | P10376 [GESP202403 六级] 游戏

作者头像

张小明

前端开发工程师

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

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

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

适合人群:

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

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


【题目来源】

洛谷:[P10376 GESP202403 六级] 游戏 - 洛谷

【题目描述】

你有四个正整数n , a , b , c n,a,b,cn,a,b,c,并准备用它们玩一个简单的小游戏。

在一轮游戏操作中,你可以选择将n nn减去a aa,或是将n nn减去b bb。游戏将会进行多轮操作,直到当n ≤ c n \leq cnc时游戏结束。

你想知道游戏结束时有多少种不同的游戏操作序列。两种游戏操作序列不同,当且仅当游戏操作轮数不同,或是某一轮游戏操作中,一种操作序列选择将n nn减去a aa,而另一种操作序列选择将n nn减去b bb。如果a = b a=ba=b,也认为将n nn减去a aa与将n nn减去b bb是不同的操作。

由于答案可能很大,你只需要求出答案对10 9 + 7 10^9 + 7109+7取模的结果。

【输入】

一行四个整数n , a , b , c n,a,b,cn,a,b,c

【输出】

输出一行一个整数表示答案。

【输入样例】

1 1 1 1

【输出样例】

1

【算法标签】

《洛谷 P10376 游戏》 #动态规划DP# #深度优先搜索DFS# #记忆化搜索# #GESP# #2024#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintmod=1e9+7;// 模数constintN=2e5+5;// 最大范围intn,a,b,c,ans;// n: 初始值, a,b: 减少值, c: 目标范围上限, ans: 答案intf[N<<1];// DP数组,大小为2N,通过+N来避免负数下标intmain(){// 输入参数cin>>n>>a>>b>>c;// 初始化:从n开始有1种方案f[n+N]=1;// 为了防止下标为负数,统一加N偏移量// 从n向下递推到c+1for(inti=n;i>c;i--){// 转移方程1:从i可以通过减a到达i-af[i-a+N]=(f[i-a+N]+f[i+N])%mod;// f[i-a] += f[i]// 转移方程2:从i可以通过减b到达i-bf[i-b+N]=(f[i-b+N]+f[i+N])%mod;// f[i-b] += f[i]}// 统计f[0]到f[c]的所有方案数之和for(inti=0;i<=N+c;i++)// 注意:这里应该是i <= c,但代码中有偏移{// 实际上,由于偏移N,f[i]对应原f[i-N]// 循环中的i是实际下标,需要减去N// 但代码直接累加f[i],这意味着i的范围是0到N+c// 这似乎有问题ans=(ans+f[i])%mod;}// 输出结果cout<<ans<<endl;return0;}

【运行结果】

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

660元打造家庭机器人助手:3小时零基础快速搭建指南

还在为高昂的机器人价格望而却步吗&#xff1f;想拥有一个能帮你端茶送水、整理物品的智能助手吗&#xff1f;XLeRobot项目正是为你量身打造的解决方案。只需约660元&#xff0c;3小时就能完成一台功能完整的双臂移动机器人。本指南将彻底颠覆你对机器人组装的传统认知&#xf…

作者头像 李华
网站建设 2026/4/16 9:08:13

高频时钟走线布局策略:pcb布线规则设计实战案例

高频时钟布线实战&#xff1a;从理论到落地的PCB设计精要你有没有遇到过这样的情况——FPGA系统莫名其妙地“抽风”&#xff0c;数据采集偶尔出错&#xff0c;示波器一测发现主时钟抖动超标&#xff1f;或者EMC测试卡在300MHz附近一个尖峰过不去&#xff0c;排查半天最后发现问…

作者头像 李华
网站建设 2026/4/16 9:02:44

8位加法器FPGA实现:从零开始的完整指南

从拨码开关到七段数码管&#xff1a;亲手点亮你的第一个FPGA加法器你有没有想过&#xff0c;计算机里最简单的“112”&#xff0c;在硬件层面究竟是怎么实现的&#xff1f;不是靠软件算法&#xff0c;也不是调用库函数——而是由成千上万个晶体管组成的数字电路实时完成的逻辑运…

作者头像 李华
网站建设 2026/4/16 9:05:32

为什么90%的人部署Open-AutoGLM会失败?这些坑你必须避开

第一章&#xff1a;Open-AutoGLM本地部署的核心挑战在将 Open-AutoGLM 部署至本地环境时&#xff0c;开发者常面临一系列技术性难题。这些挑战不仅涉及硬件资源的合理配置&#xff0c;还包括依赖管理、模型加载优化以及服务接口的稳定性设计。硬件资源需求与显存瓶颈 Open-Auto…

作者头像 李华
网站建设 2026/4/15 23:00:09

Marp CLI高效转换指南:从Markdown到专业演示文稿

Marp CLI高效转换指南&#xff1a;从Markdown到专业演示文稿 【免费下载链接】marp-cli A CLI interface for Marp and Marpit based converters 项目地址: https://gitcode.com/gh_mirrors/ma/marp-cli 还在为制作演示文稿而耗费大量时间调整格式吗&#xff1f;Marp CL…

作者头像 李华
网站建设 2026/4/13 9:34:55

告别RGB软件混乱:5分钟学会OpenRGB统一灯光控制终极指南

告别RGB软件混乱&#xff1a;5分钟学会OpenRGB统一灯光控制终极指南 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/OpenRGB. Rele…

作者头像 李华