标签:end space std int logs 训练 pac cin page
http://lx.lanqiao.cn/problem.page?gpid=T84
dp[i][j] 将i分成j份的方法数
不考虑顺序,则要么包含1 要么不含1
dp[i-j][j] j份每个都给1 在把剩下的i-j分成j份 则不会再出现1
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> ii;
const int inf=1e9;
const int N=2e2+20;
int n,k;
int dp[N][N];//
int main()
{
while(cin>>n>>k)
{
memset(dp,0,sizeof(dp));
for(int i=1;i<=n;i++)
dp[i][1]=1;
dp[0][0]=1;
for(int i=2;i<=n;i++)
{
for(int j=1;j<=min(i,k);j++)
{
dp[i][j]=dp[i-j][j]+dp[i-1][j-1];
}
}
cout<<dp[n][k]<<endl;
}
return 0;
}
标签:end space std int logs 训练 pac cin page
原文地址:http://www.cnblogs.com/HIKARI1149/p/6565742.html