gesp(C++六级)(7)洛谷:P10376:[GESP202403 六级] 游戏

news/2025/1/31 16:27:57 标签: c++, 开发语言, csp, 信奥赛, 动态规划, 数据结构, gesp

gespC7P10376GESP202403___0">gesp(C++六级)(7)洛谷:P10376:[GESP202403 六级] 游戏

在这里插入图片描述

题目描述

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

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

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

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

输入格式

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

输出格式

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

样例 #1

样例输入 #1

1 1 1 1

样例输出 #1

1

样例 #2

样例输入 #2

114 51 4 1

样例输出 #2

176

样例 #3

样例输入 #3

114514 191 9 810

样例输出 #3

384178446

提示

数据规模与约定

  • 20 % 20\% 20% 的数据, a = b = c = 1 a=b=c=1 a=b=c=1 n ≤ 30 n \leq 30 n30
  • 40 % 40\% 40% 的数据, c = 1 c = 1 c=1 n ≤ 1 0 3 n \leq 10^3 n103
  • 对全部的测试数据,保证 1 ≤ a , b , c ≤ n ≤ 2 × 1 0 5 1 \leq a,b,c \leq n \leq 2 \times 10^5 1a,b,cn2×105

AC代码(100分)

#include<bits/stdc++.h>
using namespace std;
#define ll long long
/*思路2: 
	动态规划:
	dp[i]含义:当n=i的方案数
	状态转移方程:
		当i<=c时,dp[i]=1; 
	    当i>c时,dp[i]=dp[i-a]+dp[i-b]	
*/
ll n,a,b,c;//注意开long long 
ll dp[200010];//dp数组 
const int N=1e9+7; 
int main(){
	cin>>n>>a>>b>>c;
	//特判
	if(n<=c){
		cout<<1;
		return 0;
	} 
	//递推
	for(int i=0;i<=c;i++) dp[i]=1;
	for(int i=c+1;i<=n;i++){
//		dp[i]=(dp[i-a]%N+dp[i-b]%N)%N;//对比:注意这种写法没有考虑i-a和i-b可能为负数
		dp[i]=(dp[max(i-a,0ll)]%N+dp[max(i-b,0ll)]%N)%N;
	} 
	//输出答案
	cout<<dp[n]; 
	return 0;
}

文末彩蛋:

点击王老师青少年编程主页有更多精彩内容


http://www.niftyadmin.cn/n/5838757.html

相关文章

进阶数据结构——高精度运算

目录 前言一、高精度运算的定义与背景二、高精度运算的实现方式三、高精度运算的算法实现四、高精度运算的应用场景五、代码模版&#xff08;c&#xff09;六、经典例题1.[高精度加法](https://www.lanqiao.cn/problems/1516/learning/?page1&first_category_id1&name…

SpringBoot Web开发(SpringMVC)

SpringBoot Web开发&#xff08;SpringMVC) MVC 核心组件和调用流程 Spring MVC与许多其他Web框架一样&#xff0c;是围绕前端控制器模式设计的&#xff0c;其中中央 Servlet DispatcherServlet 做整体请求处理调度&#xff01; . 除了DispatcherServletSpringMVC还会提供其他…

Hypium+python鸿蒙原生自动化安装配置

Hypiumpython自动化搭建 文章目录 Python安装pip源配置HDC安装Hypium安装DevEco Testing Hypium插件安装及使用方法​​​​​插件安装工程创建区域 Python安装 推荐从官网获取3.10版本&#xff0c;其他版本可能出现兼容性问题 Python下载地址 下载64/32bitwindows安装文件&am…

AI 计算的未来:Deepseek从中心化到去中心化的变革

引言 人工智能&#xff08;AI&#xff09;技术正以惊人的速度发展&#xff0c;最新的 DeepSeek r1 证明了一个重要趋势&#xff1a;AI 计算正从昂贵的云端推理向更廉价、更高效的本地推理转变。这一变化不仅影响 AI 产业格局&#xff0c;也可能彻底改变全球计算基础设施、经济模…

2025创业思路和方向有哪些?

创业思路和方向是决定创业成功与否的关键因素。以下是一些基于找到的参考内容的创业思路和方向&#xff0c;旨在激发创业灵感&#xff1a; 一、技术创新与融合&#xff1a; 1、智能手机与云电视结合&#xff1a;开发集成智能手机功能的云电视&#xff0c;提供通讯、娱乐一体化体…

React Native 0.77 发布:更强的样式支持与性能优化

React Native 0.77 正式发布&#xff01;此次版本带来了多项重要改进&#xff0c;包括样式功能的增强、Android 平台的性能优化以及项目模板的升级。这一版本的核心目标是提升开发效率&#xff0c;同时确保在不同平台上的兼容性。接下来&#xff0c;我们来看看这次更新中的亮点…

DooTask | 案例分析:直击客户痛点的 DooTask

DooTask | 案例分析&#xff1a;直击客户痛点的 DooTask 前言案例一一、客户面临的痛点二、DooTask 的解决方案 案例二一、客户面临的痛点二、DooTask 的解决方案 案例三一、客户面临的痛点二、DooTask 的解决方案 案例四一、客户面临的痛点二、DooTask 的解决方案 案例五一、客…

MySQL 索引存储结构

索引是优化数据库查询最重要的方式之一&#xff0c;它是在 MySQL 的存储引擎层中实现的&#xff0c;所以 每一种存储引擎对应的索引不一定相同。我们可以通过下面这张表格&#xff0c;看看不同的存储引擎 分别支持哪种索引类型&#xff1a; BTree 索引和 Hash 索引是我们比较…