计蒜客 A1634:划分整数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wingrez/article/details/88206255

计蒜客 A1634:划分整数

来源:计蒜客

标签:计数dp

参考资料:

相似题目:

题目

蒜头君特别喜欢数学。今天,蒜头君突发奇想:如果想要把一个正整数 n 分解成不多于 k 个正整数相加的形式,那么一共有多少种分解的方式呢?
蒜头君觉得这个问题实在是太难了,于是他想让你帮帮忙。

输入

共一行,包含两个整数n(1≤n≤300)和k(1≤k≤300),含义如题意所示。

输出

一个数字,代表所求的方案数。

输入样例

5 3

输出样例

5

解题思路

理解计数dp的思想。

参考代码

#include<cstdio>
#define MAXN 305
long long dp[MAXN][MAXN];
int n,k;
int main(){
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=k;j++){
			if(i==1 || j==1) dp[i][j]=1;
			else if(i<j) dp[i][j]=dp[i][i];
			else if(i>j) dp[i][j]=dp[i-j][j]+dp[i][j-1];
			else dp[i][j]=1+dp[i][j-1];
		}
	}
	printf("%lld\n",dp[n][k]);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/wingrez/article/details/88206255
今日推荐