1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int n,a,b,c; long long dp[300100]={}; int main(){ cin>>n>>a>>b>>c; dp[c]=1; //标记为c的方案数为1 for(int i=c+1;i<=n;i++){ if(i-a<=c) dp[i]++;//当前位置-a的结果小于等于c当前位置方案数+1 else dp[i]=(dp[i]+dp[i-a])%1000000007; if(i-b<=c) dp[i]++; else dp[i]=(dp[i]+dp[i-b])%1000000007; } cout<<dp[n]%1000000007; return 0; }
- 1
信息
- ID
- 832
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者