2026/1/24 5:26:42
网站建设
项目流程
企业门户网站建站,个人如何注册商标,网页设计与制作模板,网站转化低的原因欢迎大家订阅我的专栏#xff1a;算法题解#xff1a;C与Python实现#xff01; 本专栏旨在帮助大家从基础到进阶 #xff0c;逐步提升编程能力#xff0c;助力信息学竞赛备战#xff01;
专栏特色 1.经典算法练习#xff1a;根据信息学竞赛大纲#xff0c;精心挑选…欢迎大家订阅我的专栏算法题解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 cn≤c时游戏结束。你想知道游戏结束时有多少种不同的游戏操作序列。两种游戏操作序列不同当且仅当游戏操作轮数不同或是某一轮游戏操作中一种操作序列选择将n nn减去a aa而另一种操作序列选择将n nn减去b bb。如果a b abab也认为将n nn减去a aa与将n nn减去b bb是不同的操作。由于答案可能很大你只需要求出答案对10 9 7 10^9 71097取模的结果。【输入】一行四个整数n , a , b , c n,a,b,cn,a,b,c。【输出】输出一行一个整数表示答案。【输入样例】1 1 1 1【输出样例】1【算法标签】《洛谷 P10376 游戏》 #动态规划DP# #深度优先搜索DFS# #记忆化搜索# #GESP# #2024#【代码详解】#includebits/stdc.husingnamespacestd;constintmod1e97;// 模数constintN2e55;// 最大范围intn,a,b,c,ans;// n: 初始值, a,b: 减少值, c: 目标范围上限, ans: 答案intf[N1];// DP数组大小为2N通过N来避免负数下标intmain(){// 输入参数cinnabc;// 初始化从n开始有1种方案f[nN]1;// 为了防止下标为负数统一加N偏移量// 从n向下递推到c1for(intin;ic;i--){// 转移方程1从i可以通过减a到达i-af[i-aN](f[i-aN]f[iN])%mod;// f[i-a] f[i]// 转移方程2从i可以通过减b到达i-bf[i-bN](f[i-bN]f[iN])%mod;// f[i-b] f[i]}// 统计f[0]到f[c]的所有方案数之和for(inti0;iNc;i)// 注意这里应该是i c但代码中有偏移{// 实际上由于偏移Nf[i]对应原f[i-N]// 循环中的i是实际下标需要减去N// 但代码直接累加f[i]这意味着i的范围是0到Nc// 这似乎有问题ans(ansf[i])%mod;}// 输出结果coutansendl;return0;}【运行结果】114 51 4 1 176