百度百科↓

动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。1957年出版了他的名著《Dynamic Programming》,这是该领域的第一本著作。

DP例题 数字三角形

不放题目了就

转移方程:

DP[i][j]=Max(DP[i-][j],DP[i-][j-])+a[i][j]

ans=Max(DP[n][..n])
#include <bits/stdc++.h>
#define Max(a,b) a>b?a:b
using namespace std;
typedef long long LL;
inline LL read() { LL x=; int f=; char ch=getchar();
while(!isdigit(ch)) { if (ch=='-') f=-; ch=getchar();}
while(isdigit(ch)) x=(x<<)+(x<<)+(ch^),ch=getchar(); return x*f;
}
int n;
const int N=<<;
LL a[N][N];
LL DP[N][N];
signed main(){
n=read();
for(register int i=;i<=n;i++)
for(register int j=;j<=i;j++) a[i][j]=read();
for(register int i=;i<=n;i++)
for(register int j=;j<=i;j++) DP[i][j]=a[i][j],DP[i][j]+=Max(DP[i-][j],DP[i-][j-]);
LL ans=-;
for(register int i=;i<=n;i++) ans=Max(ans,DP[n][i]);
cout << ans << endl ;
return ;
}

其他的题目见我的博客

最新文章

  1. Fragment配合RadioGroup实现点击切换布局
  2. 读Javascript高级程序设计第三版第六章面向对象设计--创建对象
  3. js动态时间
  4. java 知识点随记
  5. C# where用法
  6. Swift基础--Swift中的异常处理
  7. DOM系列---DOM操作样式
  8. 【转】 iOS 开发之静态库.a和动态库详解 -- 不错
  9. js实现自动登陆的按钮
  10. selenium+python登录登出百度,等待页面加载,鼠标定位
  11. 每个PHP开发者都应该看的书
  12. 如何学好PHP
  13. 查看表空间信息SQL集合
  14. 数据结构(并查集):COGS 260. [NOI2002] 银河英雄传说
  15. js 操作剪切板
  16. linux学习之(四)-用户、组的操作,给文件文件夹设置组,更改目录权限、文件权限
  17. 读取Zip文件内容
  18. 使用node-inspector调试nodejs程序&lt;nodejs&gt;
  19. Code::Blocks出现64-Bit mode not compled in解决方法
  20. electron 热更新

热门文章

  1. 虚拟机下Linux网络配置
  2. linux下的进程
  3. MYSQL常用的性能指标
  4. vue2源码浏览分析02
  5. linux 创建 bootable iso 文件
  6. RAC fail over 测试
  7. Android: 帮助找出内存泄漏的工具
  8. 《Sams Teach Yourself Windows&#174; Workflow Foundation in 24 Hours》读书笔记目录
  9. [Vue +TS] Use Two-Way Binding in Vue Using @Model Decorator with TypeScript
  10. 查看及更改MySQL数据库物理文件存放的位置