递推解法
2026-06-26 20:33:09
发布于:上海
6阅读
0回复
0点赞
直接上代码:
#include<bits/stdc++.h>
using namespace std;
int n,m; // 目标整数n和划分部分数m
int a[205][205]; // dp数组,a[i][j]表示将i划分为恰好j个正整数之和的方案数
int main(){
cin>>n>>m; // 输入n和m
a[0][1]=1; // 初始化边界,用于递推首项
for(int i=1;i<=n;i++){
for(int j=1;j<=i&&j<=m;j++){
a[i][j]=a[i-1][j-1]+a[i-j][j]; // 递推:含1的划分 + 所有部分都大于1的划分
}
}
cout<<a[n][m]<<"\n"; // 输出结果并换行(换行是输出格式要求)
return 0;
}
这里空空如也




有帮助,赞一个