蓝桥杯13届国赛 2022
问题描述
将 2022 拆分成 10 个互不相同的正整数之和, 总共有多少种拆分方法?
注意交换顺序视为同一种方法, 例如 2022=1000+1022 和 2022= 1022+1000 就视为同一种方法。
#include<iostream>
using namespace std;long long f[15][2500]; //f[k][j]:用 k 个不同的数凑出 j 的方案数int main()
{f[0][0] = 1; //初始化:0 个数凑 0 的方案数为 1//遍历所有可能的数(物品)for(int i=1; i<=2022; ++i){//逆序遍历背包容量for(int j=2022; j>=i; j--){ for(int k=10; k>=1; k--){f[k][j] += f[k-1][j-i];}}}cout<<f[10][2022];return 0;
}