解题思路:数塔问题,简单的动态规划。
参考代码:
#include <bits/stdc++.h> using namespace std; const int N=26; int main() { int a[N][N]; int dp[N][N]={0}; int n; cin>>n; for(int i=0;i<n;i++) for(int j=0;j<=i;j++) { cin>>a[i][j]; //输入 dp[i][j]=a[i][j]; //不破坏数组a的值,用数组dp保存结果 } for(int i=n-2;i>=0;i--) //从倒数第二层开始往上求解 for(int j=0;j<=i;j++) //当前项等于当前项与当前项正下方、当前项右下方最大值之和 dp[i][j]+=max(dp[i+1][j],dp[i+1][j+1]); cout<<dp[0][0]; return 0; }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:840 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:647 |
母牛的故事 (C语言代码)浏览:1427 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:324 |
计算质因子 (C语言代码)浏览:696 |
C语言程序设计教程(第三版)课后习题12.6 (C语言代码)浏览:649 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:565 |
拆分位数 (C语言代码)浏览:514 |
A+B for Input-Output Practice (III) (C语言代码)浏览:419 |
10月月赛题解浏览:536 |