博客专栏-DP
文章平均质量分 65
CEDL
程序员之所以犯错,并不是因为他们不懂,是因为他们什么都懂
展开
-
动态规划——什么是动态规划?
先来看看《信息学奥赛一本通第5版》是怎么说的: 动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。不像前面所述的那些搜索或数值计算那样,具有一个标准的数学表达式和明确清晰的解题方法。动态规划程序设计往往是针对一种最优化问题,由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规划的设计方法对不同的问题,有各具特色的解题方法,而不存在一种万能的动态规划算法,可以解决原创 2017-07-04 10:21:39 · 762 阅读 · 0 评论 -
背包九讲——01背包
题目: 01背包问题 有N件物品和一个容量为V 的背包。放入第i件物品耗费的空间是Ci,得到的价值是Wi。求解将哪些物品装入背包可使价值总和最大。所属专栏:戳我访问01背包是动态规划的入门题目。也是《背包问题九讲》里的第一讲。 我们先来看看《背包问题九讲》是怎么讲的: 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[原创 2017-07-06 08:25:47 · 602 阅读 · 1 评论 -
背包九讲——完全背包
完全背包是01背包的加强版,先来看看《背包问题九讲》里是怎么描述这个问题的: 题目 有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。所属专栏:戳我访问 再来看看《背包问题九讲》是怎么解决这个问题的: 基本思路 这个问题非常类似于01背包问题,所不同原创 2017-07-06 09:45:46 · 878 阅读 · 0 评论 -
动态规划——洛谷1880石子合并
题目:题目描述在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.输入输出格式 输入格式:数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.输出格式:输出共2行,第1行为最小得分,第2行为最原创 2017-07-05 19:35:37 · 577 阅读 · 1 评论 -
动态规划——洛谷_P1057传球游戏
题目:题目描述上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师在此吹哨子时,传球停止,此时,拿着球没有传出去的那个同学就是败者,要给大家表演一个节目。聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法原创 2017-07-05 17:01:43 · 778 阅读 · 0 评论 -
动态规划——openjudge7624山区建小学
题目: 描述 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往。已知任意两个相邻的村庄之间的距离为di(为正整数),其中,0 < i < m。为了提高山区的文化素质,政府又决定从m个村中选择n个村建小学(设 0 < n < = m < 500 )。请根据给定的m、n以及所有相邻村庄的距离,选择在哪些村庄建小学,才使得所有村到最近小学的原创 2017-07-05 09:01:48 · 2916 阅读 · 3 评论 -
动态规划——洛谷1020_导弹拦截(1999年的)
题目测评网址:戳我打开 题目:题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数)原创 2017-07-04 16:26:15 · 541 阅读 · 0 评论 -
动态规划——最长上升子序列
题目:描述 一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8原创 2017-07-04 19:10:21 · 762 阅读 · 0 评论 -
动态规划——如何分析一道动态规划的题
动态规划与其他的算法不一样,动态规划是没有一个固定的模板的,它只是一种思想,并不是一种特殊算法。 那么,动态规划既然没有一个固定的模板,那怎么来分析它呢?或者说,做出来了怎么写题解呢?这里给大家介绍一种分析动态规划的方法: 1:写出DP状态的表达。也就是f[XX]等于XX。 2:写出DP的转移方程。也就是f[XX] = min(f[XX],f[XX]) 3:写出状态的数原创 2017-07-04 14:24:21 · 2340 阅读 · 0 评论 -
背包九讲——多重背包
多重背包是完全背包的升级版,是《背包问题九讲》里的第三讲,先来看看《背包问题九讲》是怎么表述这个问题的: 题目 有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大所属专栏:戳我访问 再来看看背包问题九讲是如何解决这个问题的: 基本算法 这题目和完全背包问原创 2017-07-06 11:09:58 · 659 阅读 · 0 评论