动态规划dp 史诗级入门篇【flag】
来源:互联网 发布:鬼才电影 知乎 编辑:程序博客网 时间:2024/06/16 10:19
引子
动态规划???传说中的动态规划???动态规划不是一个独立的算法,是一种思想…………算了算了,我闭嘴,说多了就听不懂了
故事引入
从前有个富裕的国家,叫做大犬帝国。国民虽然很有钱,但是都很诚实,对大犬帝国的首相很忠诚,对犬王很敬仰;劳动兢兢业业……终于有一天,天道酬勤,大犬帝国国民在自己的国土上发现了十座金矿,并且这十座金矿排在一条直线上。听到了这个消息,大犬帝国的首相很高兴,决定把金子都挖出来造福国民,打败猫国,壮大犬国,创建犬国主导的和谐世界。但是最终,由于猫国百般阻挠,只招募到了10000大犬帝国勇士志愿者来挖金子,由于人手不足所以大犬帝国首相派遣手下去侦察一下,每个金矿的金子量和需要的人力。
首相来到了第十个金矿,把军政大臣和犬王叫了过来,问了问情况,发现这个金矿需要1000条犬,能挖出10000两金子。首相叫来了军政大臣,问他:“你现在去帮我算算,除了这第十个金矿,其他的九个金矿,用9000条犬可以挖多少金子,再加上10000两金子,把最后答案告诉我。”然后军政大臣遵从了首相的命令,去了第九个金矿;然后叫来了犬王,问他:“你现在去帮我算算,除了第十个金矿,其他的九个金矿,用10000条犬可以挖出多少金子,然后把答案告诉我。”然后犬王也去了第九个金矿,和军政大臣碰面后,军政大臣和犬王猛然领悟,懂得了首相这样做的原因…………
同学们你们猜,军政大臣和犬王接下来会怎么做。
正解
军政大臣和犬王调查清楚了,第九个金矿需要2000条犬,挖出25000两金子,然后军政大臣叫来两个手下,跟其中一个说:“你给我算算,如果第一个金矿到第八个金矿,给你7000条犬,你可以挖出多少金子。”,跟另外一个说:“你给我算算,如果第一个金矿到第八个金矿,我给你9000条犬,你可以挖出多少金子。”……………………
这就是动态规划的一种很经典很基本的类型——01背包问题。基本上可以概括了dp的最基本思想——记忆化搜索和递推。
基本思想
可以用动态规划解决的问题,有一个特点:这个问题能分割成连续的几个阶段,每一个阶段我们可以塑造一个子问题来解决它。
状态:状态就是执行完一个阶段,解决完一个阶段的子问题后存在的情况。
状态转移方程:状态转移方程就是在状态和状态之间进行转移的方式(就是递推思想的体现)
…………算了我闭嘴,这种东西讲不讲都没关系
例题
数字三角形
luoguP1216 数字三角形 题解by柴犬首相
导弹拦截
luoguP1020 导弹拦截 题解by柴犬首相
挖地雷
luoguP2196 挖地雷 题解by柴犬首相
友好城市
luoguP2782 友好城市 题解by柴犬首相
合唱队形
luoguP1091 合唱队形 题解by柴犬首相
最长公共子序列
luoguP3402最长公共子序列
立下一个flag:本题我采用基本dp思路只拿了四十分,剩下六十分全部tle,,,我拿到全分了再写题解。
another flag 请等待dp第二篇——背包问题2017/9/27 20:47立。
- 动态规划dp 史诗级入门篇【flag】
- 动态规划入门 DP基础
- 动态规划(DP)——入门篇(11.24更新)
- VF 动态规划系列dp入门
- 动态规划之状态压缩dp入门
- 动态规划之插头DP入门
- 动态规划(dp)入门解题报告
- [动态规划]POJ3616(dp入门题)
- P OJ-----3176DP动态规划入门
- 动态规划之状态压缩dp入门
- 动态规划之状态压缩dp入门
- 动态规划DP入门 0-1背包
- 动态规划入门篇
- 动态规划入门篇
- 动态规划-入门篇
- 动态规划入门篇
- 动态规划入门级例题
- 动态规划入门(四)DP 基本思想与实现
- 20170927_利用大根堆求出最小的K个数
- Subsequence
- Java传参-基本数据类型和引用数据类型作为参数的区别(值传递)
- CURL 使用小技巧
- 类属性 和实力属性
- 动态规划dp 史诗级入门篇【flag】
- Android开发接入第三方SDK流程
- 猴子摘桃问题
- 皇后问题--回溯法
- 存储设备之NAS
- Mysql中的索引类型
- LeetCode-Longest Palindromic Substring
- EA&UML日拱一卒-活动图::14.3 StateMachine Redefinition
- 鼠标移入之张嘴、闭眼