P1025 数的划分

P1025 数的划分
f[i][j]表示把数i分成j份的方案数,分成两种情况,第一种是最小值是1,另一种是最小值不是1,对于不是1的情况,先都放一个1,那么f[i][j]=f[i-1][j-1]+f[i-j][j].
初始化f[i][i]=1

 1 #include<iostream>
 2 using namespace std;
 3 int f[1000][1000];
 4 int n,k;
 5 int main()
 6 {
 7     cin>>n>>k;
 8     for(int i=1;i<=n;i++)
 9     f[i][i]=1;
10     
11     for(int i=1;i<=n;i++)
12       for(int j=1;j<=k;j++)
13         {
14             if(i>j)
15             f[i][j]=f[i-1][j-1]+f[i-j][j];
16         }
17     cout<<f[n][k];    
18     return 0;
19 }
原文地址:https://www.cnblogs.com/war1111/p/7755217.html