博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法笔记--动态规划
阅读量:5248 次
发布时间:2019-06-14

本文共 1044 字,大约阅读时间需要 3 分钟。

求解问题类型:重叠子问题

两种写法:

递推:

#include 
#include
using namespace std;const int maxn = 100;int dp[maxn] = { 0 };int f_seque(int n){ if (n == 1 || n == 2) return 1; if (n > 2) { if (dp[n] == 0) { dp[n] = f_seque(n - 1) + f_seque(n - 2); return dp[n]; } else return dp[n]; }}int main(){ int n = f_seque(3); cout << n; system("pause"); return 0;}

递推:

 

#include 
#include
using namespace std;const int maxn = 100;int datas[maxn][maxn] = { 0 };int dp[maxn][maxn] = { 0 };int main(){ int n; cin >> n; for(int i=1;i<=n;++i) for (int j = 1; j <=i; ++j) { int tem; cin >> tem; datas[i][j] = tem; } for (int i = 1; i <= n; ++i) dp[n][i] = datas[n][i]; for(int i=n-1;i>=1;--i) for (int j = 1; j <= i; ++j) { dp[i][j] = max(dp[i + 1][j], dp[i + 1][j + 1]) + datas[i][j]; } cout << dp[1][1]; system("pause"); return 0;}

 

转载于:https://www.cnblogs.com/babyking1/p/6876616.html

你可能感兴趣的文章
annotatedClasses和component-scan冲突吗
查看>>
eclipse 代码中突然出现特殊字符
查看>>
【leetcode 简单】 第七题 合并两个有序链表
查看>>
asp.net core 微信扫码支付(扫码支付,H5支付,公众号支付,app支付)之1
查看>>
一个简单的购物金额结算(JAVA)
查看>>
虚拟内存
查看>>
Oracle常用命令(持续更新)
查看>>
Oracle中DBLink的使用
查看>>
Docker registry私有仓库(七)
查看>>
学习网站
查看>>
Android 实现人脸识别教程[运用虹软人脸识别SDK]
查看>>
Android提交自己的作品到GitHub上
查看>>
移动窗口和根据条件查找指定窗口
查看>>
oracle日期函数
查看>>
poj1703--Find them, Catch them
查看>>
记一次ftp服务器搭建走过的坑
查看>>
Deep Belief Network 学习笔记-RBM
查看>>
day 65 crm(2) admin源码解析,以及简单的仿造admin组件
查看>>
Bootstrap 学习笔记
查看>>
04 Tensorflow的中的常量、变量和数据类型
查看>>