整数划分(二)

来源:互联网 发布:私人做网络小贷平台 编辑:程序博客网 时间:2024/05/20 06:38

整数划分(二)

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述

把一个正整数m分成n个正整数的和,有多少种分法?

例:把5分成3个正正数的和,有两种分法:

1 1 3

1 2 2

输入
第一行是一个整数T表示共有T组测试数据(T<=50)
每组测试数据都是两个正整数m,n,其中(1<=n<=m<=100),分别表示要拆分的正数和拆分的正整数的个数。
输出
输出拆分的方法的数目。
样例输入
25 25 3
样例输出
22
来源
[张云聪]原创
上传者

张云聪

#include<bits/stdc++.h>using namespace std;int main(){int  t;scanf("%d",&t);while(t--){int n,m;scanf("%d%d",&n,&m);int dp[103][103];memset(dp,0,sizeof(dp));for(int i=1;i<=n;i++)dp[i][1]=1;for(int i=1;i<=n;i++)for(int j=2;j<=m;j++){if(j<i)dp[i][j]=dp[i-j][j]+dp[i-1][j-1];else if(j==i)dp[i][j]=1;}printf("%d\n",dp[n][m]);}}



原创粉丝点击