2024 GESP6级 编程第一题 游戏

题目描述

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

在一轮游戏操作中,你可以选择将 n 减去 a,或是将 n 减去 b 。游戏将会进行多轮操作,直到当n \leq c 时游戏结束。 你想知道游戏结束时有多少种不同的游戏操作序列。两种游戏操作序列不同,当且仅当游戏操作轮数不同,或是某 一轮游戏操作中,一种操作序列选择将 n 减去 a,而另一种操作序列选择将 n 减去 b。如果 a = b,也认为将 n 减去 a 与将 n 减去 b 是不同的操作。 由于答案可能很大,你只需要求出答案对 1000000007 取模的结果。

输入格式

一行四个正整数 n, a, b, c。保证 1 \leq a, b, c \leq n

输出格式

一行一个整数,表示不同的游戏操作序列数量对 1000000007 取模的结果。

样例输入#1

1 1 1 1

样例输出#1

1

样例输入#2

114 51 4 1

样例输出#2

176

样例输入#3

114514 191 9 810

样例输出#3

384178446

思路

因为是有很多分支,为了减少时间复杂度,我们优先选用动态规划,当然也可以用递推,转移方程应该不用多说了吧, i - a 加上 i - b 的和再去mod 1000000007

参考代码

#include <bits/stdc++.h>
#define ll long long
using namespace std;const int N = 2e5 + 5;
const int mod = 1e9 + 7;int dp[N];int main()
{/*ios::sync_with_stdio(0);cin.tie(0);*/int n, a, b, c;cin >> n >> a >> b >> c;for(int i = 0; i <= n; i++){if(i <= c)dp[i] = 1;elsedp[i] = (dp[max(0, i - a)] + dp[max(0, i - b)]) % mod;  }cout << dp[n];return 0;
}

制作不易,喜欢的话点个关注+赞+收藏,感谢你们的支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/678789.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机jvm下

jvm原理与实践 java程序的跨平台特性 jvm基本结构 JVM类加载流程和内存结构总览 类加载 加载阶段 类加载 验证阶段 类加载 准备阶段 类加载 解析阶段 类加载 初始化阶段 程序计数器 虚拟机栈&本地方法栈 栈帧操作 堆 方法区 永久代 元空间 垃圾回收 可触及性

python与java用途区别有哪些

区别&#xff1a; 1.Python比Java简单&#xff0c;学习成本低&#xff0c;开发效率高。 2.Java运行效率高于Python&#xff0c;尤其是纯Python开发的程序&#xff0c;效率极低。 3.Java相关资料多&#xff0c;尤其是中文资料。 4.Java版本比较稳定&#xff0c;Python2和3不…

笔记2:cifar10数据集获取及pytorch批量处理

&#xff08;1&#xff09;cifar10数据集预处理 CIFAR-10是一个广泛使用的图像数据集&#xff0c;它由10个类别的共60000张32x32彩色图像组成&#xff0c;每个类别有6000张图像。 CIFAR-10官网 以下为CIFAR-10数据集data_batch_*表示训练集数据&#xff0c;test_batch表示测试…

Ubuntu22.04下安装kafka_2.11-0.10.1.0并运行简单实例

目录 一、版本信息 二、安装Kafka 1.将Kafka安装包移到下载目录中 2.下载Spark并确保hadoop用户对Spark目录有操作权限 三、启动Kafka并测试Kafka是否正常工作 1.启动Kafka 2.测试Kafka是否正常工作 一、版本信息 虚拟机产品&#xff1a;VMware Workstation 17 Pro 虚…

C++从入门到精通---模版

文章目录 泛型编程函数模版模版参数的匹配原则类模版类模版的定义格式类模版的实例化 总结 泛型编程 泛型编程是一种编程范式&#xff0c;旨在实现通用性和灵活性。它允许在编写代码时使用参数化类型&#xff0c;而不是具体的类型&#xff0c;从而使代码更加灵活和可重用。 在…

Autoxjs 实践-Spring Boot 集成 WebSocket

概述 最近弄了福袋工具&#xff0c;由于工具运行中&#xff0c;不好查看福袋结果&#xff0c;所以我想将福袋工具运行数据返回到后台&#xff0c;做数据统计、之后工具会越来越多&#xff0c;就弄了个后台&#xff0c;方便管理。 实现效果 WebSocket&#xff1f; websocket是…

图像处理之SVD检测显示屏缺陷(C++)

图像处理之SVD检测显示屏缺陷&#xff08;C&#xff09; 文章目录 图像处理之SVD检测显示屏缺陷&#xff08;C&#xff09;前言一、SVD算法简介二、代码实现总结 前言 显示屏缺陷检测是机器视觉领域的一处较广泛的应用场景&#xff0c;显示屏主要有LCD和OLED&#xff0c;缺陷类…

本地连接服务器Jupyter【简略版】

首先需要在你的服务器激活conda虚拟环境&#xff1a; 进入虚拟环境后使用conda install jupyter命令安装jupyter&#xff1a; 安装成功后先不要着急打开&#xff0c;因为需要设置密码&#xff0c;使用jupyter notebook password命令输入自己进入jupyter的密码&#xff1a; …

USB系列一:USB技术概念

在这里USB的历史就不赘述了&#xff0c;有兴趣可以自己去搜索。也省略掉USB接口的概述&#xff0c;这些都是一些飞技术性的常识性的知识&#xff0c;没必要浪费篇幅和文字来描述。 一、USB总线版本&#xff1a;&#xff08;从USB1.1说起&#xff09; 1、USB1.1 1998年9月23日…

怎么获取二维码链接?二维码图片链接提取技巧

现在很多内容会使用二维码的方式来做展示&#xff0c;这种方式可以实现内容的快速传递&#xff0c;而且当遇到无法扫码的情况时&#xff0c;也可以通过二维码链接来访问内容&#xff0c;与其他内容分享方式相比更加灵活。那么如何快速提取二维码链接呢&#xff1f;可能有很多小…

0508_IO3

练习1&#xff1a; 1&#xff1a;使用 dup2 实现错误日志功能 使用 write 和 read 实现文件的拷贝功能&#xff0c;注意&#xff0c;代码中所有函数后面&#xff0c;紧跟perror输出错误信息&#xff0c;要求这些错误信息重定向到错误日志 err.txt 中去 1 #include <stdio.h…

鸿蒙开发接口Ability框架:【 (ServiceExtensionAbility)】

ServiceExtensionAbility ServiceExtensionAbility模块提供ServiceExtension服务扩展相关接口的能力。 说明&#xff1a; 本模块首批接口从API version 9开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 本模块接口仅可在Stage模型下使用。 导入…