“我从那里来”得分33
#include<cstdio>
#include<algorithm>
const int MAXN=1000+5;
int dp[MAXN][MAXN],w[MAXN][MAXN],r;
int main(){
scanf("%d",&r);
for(int i=1;i<=r;i++)
for(int j=1;j<=i;j++)
scanf("%d",&w[i][j]);
for(int i=1;i<=r;i++){
for(int j=1;j<=i;j++){
dp[i][j]=w[i][j]+std::max(dp[i-1][j],dp[i-1][j-1]);
}
}
printf("%d",dp[r][r]);
return 0;
}
“我到那里去”AC
#include<cstdio>
#include<algorithm>
const int MAXN=1000+5;
int dp[MAXN][MAXN],w[MAXN][MAXN],r;
int main(){
scanf("%d",&r);
for(int i=1;i<=r;i++)
for(int j=1;j<=i;j++)
scanf("%d",&w[i][j]);
for(int i=r;i>0;i--){
for(int j=1;j<=i;j++){
dp[i][j]=w[i][j]+std::max(dp[i+1][j],dp[i+1][j+1]);
}
}
printf("%d",dp[1][1]);
return 0;
}