codevs 1039 數的劃分

傳送門

    劃分DP 我喜歡

    首先 分開  n 個數 分成 m 份 是不是就是 f[n-m][m]

                    然後還有一種就是新開一塊地方 f[n-1][m-1]

#include <bits/stdc++.h>
using namespace std;
typedef long long ll ;
typedef double    dl ;
#define INF 0x7f
const int maxn =500; 
const int mod = 1000000007;  
#define f(i,l,r) for(int i=l;i<=r;++i)
#define g(i,l,r) for(int i=l;i>=r;--i)
 int n,m;
int f[maxn][maxn];
int main()
{
     
    freopen("in","r",stdin);
  //  freopen("out","w",stdout);
    cin>>n>>m;
    f[0][0]=1;
    f(i,1,n)f(j,1,min(i,m)) 
    	 f[i][j]=f[i-j][j]+f[i-1][j-1];
 	cout<<f[n][m]<<endl;
    return 0; 
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章