题目
给一个歌单固定长度为K
有两种歌:X首长度为A,Y首长度为B的歌,A!=B
问有几种组合搭配
如:
输入 K = 5,A = 2 X = 3 B = 3 Y = 3
输出 9
由于结果比较大,因此输出结果取1000000007的余数。
解析:
K = int(input())
list = list(map(int,input().split(' ')))
A = list[0]
X = list[1]
B = list[2]
Y = list[3]
MOD = 1000000007
dp = [0]*(K+1)
dp[0] = 1
//取前i首歌
for i in range(1,X+Y+1):
//j代表长度
for j in range(K,-1,-1):
p = A if i<=X else B
if j>=p:
dp[j] = (dp[j]%MOD+dp[j-p]%MOD)%MOD
print(dp[K]%MOD)