算法竞赛入门经典 例题9-1
2012-11-09 22:54
295 查看
问题:
1
3 2
4 10 1
4 3 2 20
从第一行数开始,每次可以往左下或右下走一格,直到走到最下行,求沿途数之和最大值 及 路径
一开始是这么做的:
这道题目可用DP做
更新……
1
3 2
4 10 1
4 3 2 20
从第一行数开始,每次可以往左下或右下走一格,直到走到最下行,求沿途数之和最大值 及 路径
一开始是这么做的:
#include<iostream> #include<stdio.h> #include<math.h> #define size 20 using namespace std; struct Node{ int val; int from; int maxval; }; void seeking_path(Node* v) { int point = 1; while(v[point].from != 0) { printf("%d -> ", point); point = v[point].from; } } int main() { int Layer; Node v[size]; //init for(int i = 0;i < size;i ++) v[i].val = v[i].from = v[i].maxval = 0; // input //freopen("9-1_in.txt", "r", stdin); scanf("%d", &Layer); for(int i = 1, cnt = 1;i <= Layer;i ++) for(int j = 1;j <= i;j ++) scanf("%d", &v[cnt++].val); if(Layer < 1) printf("wrong!!!\n"); else if(Layer == 1) printf("min: %d\n", v[1]); else { // init int head = (Layer-1)*(Layer-2)/2+1; //calculate for(int i = Layer-1;i >= 1;i --) { for(int j = head;(j-head+1) <= i;j ++) { int left = j+i, right = j+i+1; if((v[left].maxval+v[left].val) > (v[right].maxval+v[right].val)) { v[j].from = left; v[j].maxval = v[left].maxval+v[left].val; } else { v[j].from = right; v[j].maxval = v[right].maxval+v[right].val; } } head -= (i-1); } seeking_path(v); printf("\nmax: %d\n", v[1].maxval+v[1].val); } } //4 //1 3 2 4 10 1 4 3 2 20
这道题目可用DP做
更新……
相关文章推荐
- 【算法竞赛入门经典】6.5[图的BFS] 例题6-20 UVa1599
- 算法竞赛入门经典 例题8-1
- 算法竞赛入门经典第六章例题6-7 Trees on the level UVA - 122
- 算法竞赛入门经典第五章例题5-7 Ugly Numbers UVA - 136
- 【算法竞赛入门经典】DAG上的动态规划 例题9-3 UVa1347
- 【算法竞赛入门经典】类似于最优矩阵链乘的动态规划 例题9-9 UVa10003
- 算法竞赛入门经典 例题 3-1 开灯问题
- 【算法竞赛入门经典】DAG上的动态规划 例题9-2 UVa437
- 【算法竞赛入门经典】动态规划初步 例题9-7 UVa11584
- 【算法竞赛入门经典】递归结构的动态规划 例题9-10 UVa1626
- 【算法竞赛入门经典】树形DP 例题9-12 UVa12186
- 【算法竞赛入门经典】树的最大独立集、树的唯一性问题 例题9-13 UVa1220
- 【算法竞赛入门经典】7.6 迭代加深搜索与IDA* 例题7-10 UVa11211
- 算法竞赛入门经典第五章例题5-5 The SetStack Computer UVA - 12096
- 【算法竞赛入门经典】DAG上的动态规划 例题9-1 UVa1025
- 算法竞赛入门经典 第二版 例题6-5 移动盒子 Boxes in a Line uva12657
- 算法竞赛与入门经典 例题3-4 猜数字游戏的提示
- 【算法竞赛入门经典】7.5 路径寻找问题 例题7-9 UVa1601(1)
- 算法竞赛入门经典 例题 3-4 回文串
- 【算法竞赛入门经典】7.7 回溯法求连通块 例题7-14 UVa1602