动态规划——Minimum-sum descent(数塔问题)
来源:互联网 发布:C语言初始化什么意思 编辑:程序博客网 时间:2024/05/16 09:49
题意:
给出一个数塔,求出从顶层到底层所经过的数字的最小(或者最大)和。
示例:
解决方案:
采用自底向上的动态规划方法,从最底层向上重构出新数塔,以最后一层为基础,从倒数第二层开始向上重新构造出新数塔,至顶层后唯一的一个数字就是最小值。
在这个过程中,推出arr[i][j]=Min(arr[i][j]左孩子,arr[i][j]右孩子)+arr[i][j],即:arr[i][j]=Min( arr[i+1][j],arr[i+1][j+1] )+arr[i][j]
示例代码:
#include"stdio.h"#define N 100int Min(int a,int b){ return a<b?a:b;}int DP(int arr[N][N],int n){ int i,j; for(i=n-2; i>=0; i--) for(j=0; j<=i; j++) arr[i][j]+=Min(arr[i+1][j],arr[i+1][j+1]); return arr[0][0];}int main(){ int n,arr[N][N]; int i,j; while(scanf("%d",&n)&&n) { for(i=0; i<n; ++i) for(j=0; j<=i; ++j) scanf("%d",&arr[i][j]); printf("%d\n",DP(arr,n)); }}
0 0
- 动态规划——Minimum-sum descent(数塔问题)
- 动态规划——minimum-path-sum
- 13.8—动态规划—Minimum Path Sum
- 动态规划——数塔问题
- 动态规划——数塔问题
- 动态规划——数塔问题
- 【动态规划】minimum-path-sum
- 动态规划----Minimum Path Sum
- 动态规划问题系列---Minimum Path Sum(路线上元素和的最小值)
- 动态规划--最小路径和(Minimum Path Sum)
- LeetCode 64 Minimum Path Sum(动态规划)
- 数塔—动态规划
- 数塔问题(动态规划)
- LeetCode—Minimum Path Sum 二维数组最小路径,动态规划
- [LeetCode] [动态规划] Minimum Path Sum
- Leetcode 动态规划 Minimum Path Sum
- LeetCode || Minimum Path Sum 动态规划思想
- LeetCode Minimum Path Sum(动态规划)
- HDU ACM 1272 小希的迷宫
- 64位win7安装Oracle11gR2数据库
- UIColor
- 【译】如何使用Android MediaStore裁剪大图片
- webbrowser学习
- 动态规划——Minimum-sum descent(数塔问题)
- Android大图片裁剪终极解决方案(下:拍照截图)
- Android大图片裁剪终极解决方案(中:从相册截图)
- gdb使用说明
- hive的job运行结束后,数据导入分区报错:Stats aggregator of type counter cannot be connected to
- 【疑难杂症】eclipse每行后边出现奇怪符号
- android获得控件在屏幕中的绝对坐标 getLocationInWindow 和 getLocationOnScreen
- 一步一步跟我学习lucene(14)---lucene搜索之facet查询原理和facet查询实例
- android MotionEvent中getX()和getRawX()的区别