【动态规划笔记】:POJ 3176 树塔_m0_52043808的博客 结果输出 dp[n][n/2+1]如果n是奇数 max(dp[n][n/2],dp[n][n/2+1])如果n是偶数 登录后复制 #include <iostream> #include<cstring> #include<algorithm> using namespace std; int main() { int n; cin>>n; int G[101][101]; memset(G,0,sizeof(G)); int dp[101][101]; memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++){ for(int j=1;j<=i;j++){ cin>>G[i][j]; } } dp[1][1]=G[1][1]; for(int i=1;i<=n;i++){ for(int j=1;j<=i;j++){ dp[i][j]=G[i][j]+max(dp[i-1][j],dp[i-1][j-1]); } } if(n%2==1){ cout<<dp[n][(n+1)/2]; } else{ cout<<max(dp[n][n/2],dp[n][n/2+1]); } return 0; } 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32. 原创作者: u_16969274 转载于: https://blog.51cto.com/u_16969274/11813591