终于理解动态规划,最简单运用~
来源:互联网 发布:八叉树算法 js 编辑:程序博客网 时间:2024/06/05 02:15
最近在看算法,被各种概念困扰。这块骨头很难啃 啊,在看《算法竞赛入门经典》的过程中,在看动态规划,它是把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。
我一直不能深刻理解它的意思,然后我再网上找例子,突然通过《算法竞赛入门经典》书里的一句话就是:记录状态和状态转移。
看这个例子,这个三角形,从上到下,寻找最长的值。
[ [2], [3,4], [6,5,7], [4,1,8,3]]
输入
2
3 4
6 5 7
4 1 8 3
输出:
21
动态规划就是记录状态的变化过程,状态的记录为
21
16 19
10 13 15
4 1 8 3
也就是说,将下一层的数字中最邻近的取较大值+自己。局部的取最大值,然后全局取最大值。
#include<stdio.h>int sta[4][4];int num[4][4];int main(int argc, char const *argv[]){int i,j;for ( i = 0; i < 4; ++i){for (j = 0; j < i+1; ++j){scanf("%d",&num[i][j]);}}for ( i = 0; i < 4; ++i){sta[3][i]=num[3][i];}for ( i = 2; i >= 0; --i){for (j = 0; j < i+1; ++j){sta[i][j]=sta[i+1][j]>sta[i+1][j+1]?sta[i+1][j]:sta[i+1][j+1];sta[i][j]+=num[i][j];}}printf("%d\n",sta[0][0]);return 0;}
0 0
- 终于理解动态规划,最简单运用~
- 动态规划简单理解
- 最容易理解的动态规划文章
- 从01背包问题理解动态规划(看过最简单易懂的版本)
- 最简单的动态规划之POJ1063
- HDU1087 最简单的lis动态规划
- 简单的动态规划问题(帮助理解动态规划)
- 对动态规划算法的简单理解
- 动态规划算法的运用
- 删数问题最简单的动态规划
- 动态规划理解
- 理解动态规划
- 动态规划理解
- 动态规划~概念理解
- 深入浅出理解动态规划
- 理解动态规划
- 深入理解动态规划
- 动态规划--总体理解
- 游起来吧!超妹!(物理小试题)
- Scripts:查询每个session命中率的脚本perf_hit_ratio_by_session.sql
- Object C Lesson1
- Android Activity布局之RelativeLayout
- Scripts:查询每个数据文件使用效率的脚本perf_file_io_efficiency.sql
- 终于理解动态规划,最简单运用~
- java的几种对象(PO,VO,DAO,BO,POJO)解释
- hdu 2112 HDU Today (dijkstra)
- b2Body刚体
- 九度-1384
- 约瑟夫环
- Virtualbox命令行启动和操作虚拟机
- Debian中fcitx无法激活
- Ant打包APK