动态规划
文章平均质量分 61
QU66Q
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UVA Cutting Sticks(10003)
题目大意: 此题大意就是切棍子,若切长度为10的棍子,就得开销10,切长度为8的棍子,开销为8,问根据给定切的位置,如何切能使开销最小。比如一根棍子原始长度为10,则给定切的位置为2,4,8,则若第一次在2处切,需要开销10,因为切的时候棍子长度为10,切好后产生两个棍子,长度分别为2和8,第二次切若为4,则开销为8,因为4的位置在长度为8的棍子上,第三次切的位置为8,则...原创 2014-05-20 14:49:38 · 150 阅读 · 0 评论 -
UVA Pay the Price(10313)
题目大意: 有0~300这300种价值的金额。 现在可能给出参数: 1个:n, 输出可以组成价值n的方式的个数。 2个:n, a, 输出用个数小于a个硬币的组成价值n的方式的个数。 3个:n, a, b, 输出用个数大于a和小于b个硬币组成价值n的方式的个数。 解题大意: 参考了其他人的...原创 2014-07-23 21:16:10 · 149 阅读 · 0 评论 -
UVA Make Palindrome(10453)
题目大意: 给定一个字符串,用最少的插入操作的次数,使得该字符串变为回文。 解题思路: 和UVA(10739) String to Palindrome一样,求出最少的操作次数,唯一不一样的就是这道题要将还原的回文输出出来。 设置 dp[i][j] 表示第 i 个字符到第 j 个字符是回文时所需要操作的最少次数,字符串为 s , 则状态转移方...原创 2014-07-03 16:43:11 · 155 阅读 · 0 评论 -
UVA Ingenuous Cubrency(11137)
题目大意: 在10000以内的正整数中,有些数可以开3次方,给定一个正整数,可以由一些能够开3次方的数组成,求出共有几种组成方式。 解题思路: 该题和硬币找零的题目相似,可以参考UVA Dollars(147)。先算出所有能够开3次方的数,这些数相当于可以用的硬币,后面的求法就和UVA Dollars(147)一样了。状态转移方程为:dp[n] +=...原创 2014-06-30 16:41:13 · 122 阅读 · 0 评论 -
UVA Again Palindrome(10617)
题目大意: 给定一个字符串,问在该字符串的所有子串中,有多少个是回文? 解题思路: 动态规划,设定 dp[i][j] 表示第 i 个字符到第 j 个字符里是回文的个数,设字符串为 s,则状态转移方程为:(1)s[i] == s[j] dp[i][j] = dp[i+1][j] + dp[i][j-1] - dp[i+1][j-1] + ...原创 2014-06-27 16:18:33 · 143 阅读 · 0 评论 -
UVA Chopsticks(10271)
题目大意: 有N个数,每个数表示筷子的长度,要你选出n+8组三元组,即n+8组筷子,每组3支筷子,要求这三支筷子的长度满足x<=y<=z,其中代价为(x-y)^2。问最小的代价是多少。 解题思路: 动态规划问题,令dp[i][j] 表示从前 j 个数中选出 i 组三元组所需要的代价,则状态转方程为: ...原创 2014-06-26 16:28:11 · 179 阅读 · 0 评论 -
UVA Optimal Binary Search Tree(10304)
题目大意: 给你n个点以及每个点的搜索频率,构建一个最优二叉树,使得二叉树的总权重最小,总权重等于每个点的搜索频率乘以其相应的深度的总和。设有3个点e1, e2, e3, 其搜索频率为f(e1), f(e2), f(e3), 若构建的二叉树中,其三个点在树中的深度分别为h1, h2, h3,则 W = f(e1) * h1 + f(e2) * h2 + f(e3) * h3。问...原创 2014-06-25 16:51:17 · 171 阅读 · 0 评论 -
UVA String to Palindrome(10739)
题目大意: 给定一个字符串,使用替换字符,增加字符和删除字符三种操作使得字符串变成回文,求出最少的操作次数。 解题思路: 动态规划题目,题中的增加字符和删除字符的操作本质上是一样的,可以都理解为增加字符。 设dp[i][j] 表示字符串第 i 个字符到第 j 个字符是回文所需操作的次数,则假设第 i+1 到 j-1 的字符是回文了,那...原创 2014-06-25 11:32:00 · 157 阅读 · 0 评论 -
UVA Tower of Cubes(10051)
题目大意: 有N个立方体,立方体的6个面颜色不一,现在要求立方体按照体重从小到大叠起来,并且两个立方体接触面的颜色必须相同,求最高能叠多高? 解题思路: 动态规划,本质上就是求最长递增子序列,同时加上了限制条件,就是两个立方体之间颜色要一样,所以我就先用动态规划求出最长符合要求的子序列的长度,同时记录序列最后一个元素的位置,然后再用递归输出子序列。求最长递...原创 2014-06-09 20:09:55 · 185 阅读 · 0 评论 -
UVA Bachet's Game(10404)
题目大意: Stan和Ollie玩一个游戏,有N个石子,Stan先手,两人每次可以从石堆中拿走m个石子,谁拿最后一手,谁赢。其中m的值有范围,每个案例中都设定了m的取值,每次取走石子的个数只能在设定的值中选取,比如一个案例为:21 3 1 3 8,表示石堆中有21个石子,m值可选取的值有3个,分别为1,3和8,也就是每次拿走的石子个数要么是1个,要么是3个,要么就是8个。 ...原创 2014-05-29 15:35:18 · 163 阅读 · 0 评论 -
UVA The Tower of Babylon(437)
题目大意: 有n种长宽高为x,y,z的砖头,每种都有无数个。砖头可以用不同方式来盖,砖头a以某种方式可以盖在砖头b上,当且仅当a的底部的长宽都要比b的底部长宽要小。问最高可以建多高? 解题思路: 动态规划中的最长递增(递减)子序列问题,每个砖头可以看成是3个砖头,即A(x,y,z) , B(x,z,y) 和 C(y,z,x),其中前两个为底,大三个元素为高...原创 2014-05-28 17:24:36 · 122 阅读 · 0 评论 -
UVA Longest Run on a Snowboard(10285)
题目大意: 给你一个矩阵,当做滑雪场,矩阵的每个单元中的数代表高度,滑雪者只能从高的滑到低的地方,且方向只能是上,下,左和右,问滑雪者最长能滑几个单元? 解题思路: 该题本质上就是求矩阵上的最长严格连续递减(或递增)序列,即序列中的元素不能相等,而且前后之间必须相邻。该题属于动态规划问题,要用到递归。 已找递减序列为例,设dp[i][j]表...原创 2014-05-27 17:28:49 · 288 阅读 · 0 评论 -
UVA Homer Simpson(10465)
题目大意: Homer喜欢吃三明治,他吃Krusty三明治需要花m分钟,吃Kwik-e-Mart三明治需要花n分钟,现在给你t分钟,问Homer最多能吃几个三明治,若有剩余时间,则输出剩余时间,输出用空格隔开。 解题思路: 完全背包问题,相当于问t分钟能够由几个m和几个n凑成,之前有硬币凑钱的题目,问的就是使用给定的硬币,有几种方法能够凑到M元,这题类似...原创 2014-05-26 11:21:59 · 140 阅读 · 0 评论 -
UVA Let Me Count The Ways(357)
题目大意: US 的硬币工分为以下五种:penny: 1c, nickel: 5c, dime: 10c, quarter: 25c, half-dollar: 50c,若Mel去商店里买东西,店家找他 N cents,问使用上面5种penny,共有几种找法?即有几种方法能够凑出N cents?其中0 <= N <= 30000; 解题思路: ...原创 2014-05-25 22:14:09 · 147 阅读 · 0 评论 -
UVA Coin Change(674)
题目大意: 将一对硬币分成两份,使得两份的总金额差最小。比如有三枚硬币,价值分别为2,3和5,则分成的两堆就是2,3一堆和 5一堆,它们的总金额差为0。 思路: 属于动态规划问题,刚开始看,想到了最大连续子序列和的问题,但又有点不一样。后来发现得用0-1背包来解决。定义一个数组dp[Max], Max要大一些,表示提供的硬币所能组成的所有和,dp[i]=1表示...原创 2014-05-22 11:00:27 · 177 阅读 · 0 评论 -
UVA Forming Quiz Teams(10911)
题目大意: 一场比赛中,将所有参赛选手进行分组,两个人一组,每个选手都有自己的一个坐标,要求每组中两个人之间的距离尽量接近,并且将所有小组的距离相加,使得总的的距离和最小。 解题思路: 集合上的动态规划问题,需要对集合进行子集遍历。设d[S]代表集合S中的元素进行两两配对的最小距离和,则状态转移方程为:d(S) = min{ | PiPj | + d( S...原创 2014-07-30 21:03:11 · 134 阅读 · 0 评论
分享