蓝桥杯13届国赛 2022

问题描述

将 2022 拆分成 10 个互不相同的正整数之和, 总共有多少种拆分方法?

注意交换顺序视为同一种方法, 例如 2022=1000+1022 和 2022= 1022+1000 就视为同一种方法。

#include
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<

你可能感兴趣的:(蓝桥杯,背包问题)