题目大意:
求一个数的划分数
我的理解:
动态规划(等有时间再好好总结吧)
我的代码:
#include <iostream>
#include <cstdio>
#define MAX_N 1000
using namespace std;
int dp[MAX_N][MAX_N];
int n,m;
void solve(){
dp[0][0] = 1;
for(int i = 1;i<=m;i++){
for(int j = 0;j<=n;j++){
if(j-i >= 0){
dp[i][j] = dp[i-1][j]+dp[i][j-i];
}else{
dp[i][j] = dp[i-1][j];
}
}
}
cout<<dp[m][n]<<endl;
}
int main()
{
int t;
cin>>t;
while(t-- != 0){
cin>>n;
m = n;
solve();
}
return 0;
}