首页 > Windows开发 > 详细

AcWing 900. 整数划分

时间:2019-11-20 10:29:59      阅读:77      评论:0      收藏:0      [点我收藏+]
//不考虑数字的顺序
//可以看出完全背包问题,1~ n-1 的数字可以用无限次
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1010, mod = 1e9 + 7;
int n;
int f[N];
int main() {
    cin >> n;
    f[0] = 1;//表示一个都不选,那么就只有一种情况 
    for (int i = 1; i <= n; i ++ )
        for (int j = i; j <= n; j ++ )
            f[j] = (f[j] + f[j - i]) % mod;

    cout << f[n] << endl;
    return 0;
}
//f[i][j] = f[i - 1][j] + f[i - 1][j - i] + f[i - 1][j - 2 * i] + …; 
//f[i][j - i] = f[i - 1][j - i] + f[i - 1][j - 2 * i] + …; 
//因此f[i][j] = f[i - 1][j] + f[i][j - i]; 
//f[i][j]表示只从1~i中选,且总和等于j的方案数

 

 

AcWing 900. 整数划分

原文:https://www.cnblogs.com/QingyuYYYYY/p/11894876.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!