#G624031. [GESP202403 六级 C++] 26. 游戏

提交2 通过1
通过率50%
时间限制1000ms
内存限制512MiB
    ID: 665 传统题 1000ms 512MiB 尝试: 2 已通过: 1 难度: 普及- 上传者: 标签>编程题c++动态规划 DP深度优先搜索 DFS记忆化搜索GESPGESP强化C++昊轩OJ简单序列型DP1星

题目描述

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

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

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

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

输入格式

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

输出格式

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

1 1 1 1
1
114 51 4 1
176
114514 191 9 810
384178446

数据规模与约定

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