动态规划
frankchenfu
这个作者很懒,什么都没留下…
展开
-
动态规划算法1——背包问题
动态规划是一个OI选手都熟悉的算法,同时也是刚接触时比较难理解的。今天,我为大家分享一类比较简单的动态规划问题——背包问题。背包问题(Knapsack problem)是在1978年提出的,它都可以类似的描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。背包问题主要有三种分支:1、01背包;2、完全背包;3、多重背...原创 2017-02-26 21:31:00 · 253 阅读 · 1 评论 -
动态规划算法2——最长公共子序列
今天,我给大家带来的是“最长公共子序列”(LCS)的讲解。限于水平,这里仅介绍O(nm)算法。最长公共子序列其实是很好理解的。顾名思义,给出多个(这里暂且只考虑两个)序列,求他们的最长公共子序列,就是在这两个序列中分别删去一些的字符,得到两个相同的序列,使得这两个相同的序列最长。当然上面是我自己用比较好理解的方法写的,关于某些“百科”上的解释就是“一个序列S,如果分别是两个或多个已知序...原创 2017-03-02 21:29:00 · 917 阅读 · 0 评论 -
动态规划算法3——最长上升子序列
今天我们要讲的是最长上升子序列(LIS)。 【题目描述】给定N个数,求这N个数的最长上升子序列的长度。【样例输入】72 5 3 4 1 7 6【样例输出】4 什么是最长上升子序列? 就是给你一个序列,请你在其中求出一段不断严格上升的部分,它不一定要连续。就像这样:2,3,4,7和2,3,4,6就是序列2 5 3 4 1 7 6的两种选取方案。最长的长度是...原创 2017-07-02 21:27:00 · 411 阅读 · 2 评论 -
Atcoder Educational DP Contest
一、 题目概况题目来源完成时间完成数量正确率Atcoder Educational DP Contest2019/01/24 - 2019/2/2242424题(除V题和Z题以外)AC:24/2624/2624/26二、试题分析A - Frog 1简单DP。由于只能从前两个石头跳转过来,所以对于每个石头记f(i)f(i)f(i)为到当前为止最优解,则有f(...原创 2019-07-02 23:05:42 · 786 阅读 · 0 评论 -
动态规划4——从两题来看线头DP的基本应用
因为准备中考的缘故,已经半年没有没有接触什么新算法了,博客也是六个月没更新过了。差不多要继续了。那么就开始正文的讨论了。问题引入线头DP?我们见过许多类型的DP,包括序列上的、树或图上的;求最优解的、计数类的……但是这些DP无一例外要遵循一个原则——无后效性。这个有一点点专业的名次常常在讲DP理论时提到,它简单来说就是前面所做出的的决定不能影响后面的答案。于是,我们就见到了一些题目:...原创 2019-07-02 22:57:17 · 1349 阅读 · 0 评论 -
斜率优化dp学习
转自orzzz 斜率优化dp学习 用了一堂半的课才彻底搞懂。其他神犇写的博客或多或少有点小bug,所以orzzz不才斗胆重新写一个。里面大量穿用其他神犇的原话,就不逐一标明出处了。引用资料 Accept的博客 MathonL的博客 首先是最经典的题的题面。HDU 3507,很适合的一个入门题。大概题意就是要输出$N$个数字$a[N]$,输出的时候可...转载 2019-09-19 22:33:32 · 218 阅读 · 0 评论