海洋之心


私信TA

用户名:wanggongsheng

访问量:132640

签 名:

等  级
排  名 18
经  验 21672
参赛次数 3
文章发表 163
年  龄 26
在职情况 学生
学  校
专  业 计算机技术

  自我简介:

读研ing,平时不登录dotcpp

#include<iostream>
#include<algorithm>
using namespace std;
const int N = 110;
int dp[N][N];
int main(void)
{
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++) dp[i][0]=0;
	for(int i=0;i<=n;i++) dp[0][i]=1;
	
	//dp[i][j]表示把i拆分成不超过j的方案数 
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			//dp[i][j]只有包含j和不包含j两种情况
			//dp[i][j-1]不包含j,dp[i-j][j]包含若干个j 
			if(i>=j) dp[i][j]=dp[i][j-1]+dp[i-j][j]; 
			else dp[i][j]=dp[i][i];	
		} 
	}
	printf("%d",dp[n][n]);
	return 0;
}
 

0.0分

0 人评分

  评论区

  • «
  • »