动态规划
动态规划
香蕉君
Heros come and go,but legends are forever.
展开
-
hihocoder 1091 背包问题
hihocoder 1091题意一个游戏,一定金币可以升级,初始0级,对造成伤害为aiaia_i ,每升一级,伤害提升aiaia_i ,0->1级需要金币为bibib_i ,以后每升一级需要金币量为上一次的1.07倍,实际上是向下取整。给定n个英雄,和初始m个金币。每个英雄0级造成的伤害是不一样的,升级需要的金币也不一样。需要作出最优决策,升级英雄,使所有英雄造成的伤害总和尽可能...原创 2018-08-08 10:49:46 · 146 阅读 · 0 评论 -
LIS 最长上升子序列问题
最长上升子序列 LIS问题介绍: 很简单的问题,给一个可以比较的串,找到这个串中存在的一个最长的、升序的子序列。一般问题会简化为找到这个最长序列的长度。解决办法:动态规划 对于这个问题,最简单的办法是动态规划算法。设dp[i] 为若以第i个元素为序列的结尾,串的最长子序列,并且这个序列包含第i个元素。子状态就是dp[j],j是i前面的元素,并且比i的序小,...原创 2018-08-03 17:47:40 · 167 阅读 · 0 评论 -
Investigating Div-Sum Property UVA - 11361(数位DP讲解)
Investigating Div-Sum Property UVA - 11361(数位DP讲解) 小白书上虽然说了一大堆,但并没有告诉我们这题的思路是运用数位DP,这是一类模板级别的题目了:给定范围[a,b],求满足g(x)的x的数目,g(x)往往都是关于数字x的每一数位上或者若干数位上的数字的对应关系。这样子的题目就可以使用数位DP来解决。大概的变形无出这种。我们的解决办法是让f(a)原创 2018-01-25 01:34:37 · 208 阅读 · 0 评论 -
HDU 6148 Valley Numer
6148 Valley Numer 数位DP题意:当一个数字,从左到右依次看过去数字没有出现先递增接着递减的“山峰”现象,就被称作 Valley Number。它可以递增,也可以递减,还可以先递减再递增。在递增或递减的过程中可以出现相等的情况。比如,1,10,12,212,32122都是 Valley Number。121,12331,21212则不是。度度熊想知道不大于N...原创 2018-08-04 15:20:02 · 180 阅读 · 0 评论 -
数位dp
数位DP可解决问题类型:问题是给定了一个区间[A,B],符合题目给定的条件的数有多少。条件一般和数的各数位的组成有关。类似的题目如HDU 3555。方法思路给定N(1<=N<=263−1)N(1<=N<=263−1)N (1 O(n)O(n)O(n) 的时间以内完成全部数位的枚举。具体细节操作我觉得这篇文章讲的不够好。可以看看视频。重要的...原创 2018-08-03 20:52:46 · 815 阅读 · 0 评论 -
The Tower of Babalon,Uva 437(有向图的DAG)
Perhaps you have heard of the legend of the Tower of Babylon. Nowadays many details of this talehave been forgotten. So now, in line with the educational nature of this contest, we will tell you the原创 2017-09-23 09:38:43 · 225 阅读 · 0 评论 -
Jin Ge Jin Qu [h]ao,Uva 12563
(If you smiled when you see the title, this problem is for you ^_^)For those who don’t know KTV, see: http://en.wikipedia.org/wiki/Karaoke_boxThere is one very popular song called Jin Ge Jin Qu().原创 2017-09-28 22:18:04 · 255 阅读 · 0 评论 -
Cutting Sticks UVA - 10003
Cutting Sticks UVA - 10003题目来自紫书介绍例题,题意大概是:选择合适的顺序切给定的n个点。怎么选择切割的成本最低,每次切割的成本等于棍子的长度。所以切割的顺序影响最后的结果。明显这是需要动态规划减少决策的规模。 比如给定一根L长度的棍子,棍子上n个待切割点,那么我定状态dp(0,n+1)为这根棍子切割n次的最小成本。可以知道它等于dp(0,k)+dp(k,n+1...原创 2018-03-12 20:46:19 · 378 阅读 · 0 评论 -
POJ3264 MRQ算法
poj 3264给n个数,求任意区间内的最值差。思路:nlognnlognnlogn 的 算法在这里可以过,有线段树和RMQ算法两种。这里介绍RMQ算法。RMQ算法是位运算动态规划算法,定义dp[i][j] 为[i,i+2j−1][i,i+2j−1][i,i+2^j -1] 区间内的最值。那么该区间可以划分为两个相同大小的区间[i,i+2j−1−1][i,i+2j−1−1][i,i+2...原创 2018-05-08 22:18:08 · 300 阅读 · 0 评论