算法-动态规划
来源:互联网 发布:出色的有声小说 知乎 编辑:程序博客网 时间:2024/06/18 05:27
递归方程+边界条件
例子:⑴数字三角
#include <iostream>int n;int a[100][100];//存三角的值int b[100][100];//存路径最大值using namespace std;int max(int i,int j){ if(i>=j){ return i; } else{ return j; }}int main(){ cin>>n; for(int i=1;i<=n;i++)//这道题i和j从1开始 { for(int j=1;j<=i;j++) { cin>>a[i][j]; } } for(int j=1;j<=n;j++){ b[n][j]=a[n][j]; }/* 下面这个循环就是这个算法的精粹 因为暂时的小不一定就整条路径小,所以需要枚举各条路径,而这样做无疑是最适合的*/ for(int i=n-1;i>0;i--){ for(int j=1;j<=i;j++){ b[i][j] = a[i][j]+max(b[i+1][j],b[i+1][j+1]); } } //c[1]=a[1][1]; cout<<b[1][1]; cout<<endl;/* 这里找出靠右路径是第二个难点*/ cout<<a[1][1]<<" "; int y=1;// for(int i=1;i<=n;i++){// for(int j=1;j<=i;j++){// cout<<b[i][j]<<" ";// }// cout<<endl;// } for(int i=2;i<=n;i++){ if(b[i][y]<=b[i][y+1]){//这里等于一起取,路径就靠右 cout<<a[i][y+1]<<" "; y++; } else{ cout<<a[i][y]<<" "; } } return 0;}/* 5 n 7 数组a 3 8 8 1 0 2 7 4 44 5 2 6 5处理后的b数组: 30 23 21 20 13 10 7 12 10 10 4 5 2 6 5*/
⑵最长公共子串
⑶旅游背包
1 0
- 算法--动态规划算法
- 动态规划算法剖析
- 动态规划算法
- 初识动态规划算法
- 动态规划算法
- 动态规划算法剖析
- 动态规划算法
- 动态规划算法剖析
- 动态规划算法
- 动态规划算法实现
- 动态规划算法
- 动态规划算法
- 动态规划算法之一
- 动态规划算法备忘
- 动态规划 --压缩算法
- 动态规划算法
- 动态规划算法
- 动态规划算法解析
- Selector uniquing in the dyld shared cache
- Android开发之线性布局(LinearLayout)
- ArcGIS中QueryTask,FindTask,IndentifyTask 之间的区别
- ListView的使用----ArrayAdapter与SimpleAdapter
- 外观模式
- 算法-动态规划
- 多工程批量打包
- Google Nexus5关于Android 6.0源码的同步,编译和烧写
- Hadoop系列二:启动HDFS和YARN过程日志
- zigbee网关 zstack CC2530添加iic温度传感器lm75a
- jdbc+struts axis 传递大数据
- 二叉树三种遍历方式,有先序,中序或者后序,中序恢复二叉树等操作
- 常用的OpenCV函数速查
- Linux 基础:如何在Ubuntu上检查一个软件包是否安装