北京建商城网站,wordpress制作分类层级,数字营销的定义,f1意大利站最新排名算法训练 数的划分
时间限制#xff1a;1.0s 内存限制#xff1a;256.0MB 问题描述 将整数n分成k份#xff0c;且每份不能为空#xff0c;任意两份不能相同(不考虑顺序)。 例如#xff1a;n7#xff0c;k3#xff0c;下面三种分法被认为是相同的。 1#…算法训练 数的划分
时间限制1.0s 内存限制256.0MB 问题描述 将整数n分成k份且每份不能为空任意两份不能相同(不考虑顺序)。 例如n7k3下面三种分法被认为是相同的。 115; 151; 511; 问有多少种不同的分法。
输入格式 nk
输出格式 一个整数即不同的分法
样例输入
7 3
样例输出
4 {四种分法为115;124;133;223;}
数据规模和约定 6n2002k6 #includeiostream
using namespace std;
int dp[210][16];
int main()
{int n,k;cinnk;for(int i1;in;i)dp[i][1]1;//分成一份的时候只有一种情况 for(int i1;in;i)for(int j2;jk;j)//分成一份的时候跳过从2开始 {if(ij)dp[i][j]dp[i-j][j]dp[i-1][j-1];/*kn情况数肯定是0 当 ij时缩小规模分成两类讨论1.当至少有一个等于一我们便可以缩小它的规模变成研究dp[i-1][j-1]的情况数2. 当所有的都大于等于2实际上也就等于每一份里面减去一个一而份数不变的情况dp[i-j][j] */ }coutdp[n][k]endl;
}