我AC了,但还是有疑惑:我提交的代码算动态规划还是递推?
#include<bits/stdc++.h>
using namespace std;
int a[10000][10000],dp[10000][10000],n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++)cin>>a[i][j];
}
for(int i=1;i<=n;i++)dp[n][i]=a[n][i];
for(int i=n-1;i>=1;i--){
for(int j=1;j<=i;j++)dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+a[i][j];
}
cout<<dp[1][1];
return 0;
}
顺便请大佬们告诉我一些做背包问题和做难动态规划题的方法,我正需要你们的帮助,
谢谢!