#include<cstdio>
using namespace std;
const int MOD = 1e9 + 7;
int dp[1010];
int main(){
int t = 1,n;
dp[1] = 1;
for(int i = 2;i < 1001;i++){
for(int j = 1;j < i;j++){
if((i - 1) % j == 0){
dp[i] = (dp[i] + dp[j]) % MOD;
}
}
}
while(scanf("%d",&n) == 1){
printf("Case %d: %d\n",t++,dp[n]);
}
}uva 1645
最新推荐文章于 2018-07-26 21:40:39 发布
本文介绍了一个使用C++实现的动态规划算法案例,通过该算法可以计算特定条件下由子问题构成的问题解的数量。该算法利用了动态规划的思想,通过递推公式计算每个状态的解,并确保计算过程中考虑到了模运算以防止整数溢出。


325

被折叠的 条评论
为什么被折叠?



