最长公共子序列问题LCS问题描述参考解答动态规划算法可有效地解此问题。下面我们按照动态规划算法设计的各个步骤来设计一个解此问题的有效算法。1.最长公共子序列的结构解最长公共子序列问题时最容易想到的算法是穷举搜索法,即对X的每一个子序列,检查它是否也是Y的子序列,从而确定它是否为X和Y的公共子序列,并...
分类:
其他好文 时间:
2014-07-16 18:01:53
阅读次数:
280
(1)最长递增子序列问题有两种方法:(1)动态规划方法(2)类似二分查找的方法O(nlogn)动态规划方法: 以i结尾的序列的最长递增子序列和其[0, i - 1]“前缀”的最长递增子序列有关,设LIS[i]保存以i结尾的最长递增子序列的长度:若i = 0,则LIS[i] = 1; 若i > 0,....
分类:
其他好文 时间:
2014-07-14 22:05:35
阅读次数:
474
坚持写解题报告,是总结提高,也是对自己的激励。这道题貌似没有用到动态规划啊。是纯贪心吧,是吧。。定义一个结构体,先对deadline排序,然后对score二级排序。从分值最高的作业开始,看看是否能在deadline那天或之前完成。如果不能完成,那么这分只能丢掉。 1 #define LOCAL 2 ...
分类:
其他好文 时间:
2014-07-14 10:29:22
阅读次数:
192
链接:http://www.rqnoj.cn/problem/87思路:动态规划 定义f[i][j]表示到达第 i 块给定石头用了 j 块添加石头的最少步数。 转移方程:f[i][j]=min{f[k][j-tmp[pos[i]-pos[k]]+1]+tmp[pos[i]-pos[k]]...
分类:
其他好文 时间:
2014-07-13 23:54:14
阅读次数:
404
之前我们介绍了用动态规划的方法来解决一些最优化的问题。但对于有些最优化问题来说,用动态规划就是“高射炮打蚊子”,采用一些更加简单有效的方法就可以解决。贪心算法就是其中之一。贪心算法是使所做的选择看起来是当前最佳的,期望通过所做的局部最优选择来产生一个全局最优解。...
分类:
其他好文 时间:
2014-07-13 18:06:01
阅读次数:
377
Description
N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。
合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 Ti+1 > … > TK (1
你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队...
分类:
其他好文 时间:
2014-07-12 20:18:05
阅读次数:
189
和分治法一样,动态规划也是通过组合子问题的解而解决整个问题的。分治法是指将问题划分为一个一个独立的子问题,递归地求解各个子问题然后合并子问题的解而得到原问题的解。与此不同,动态规划适用于子问题不是相互独立的情况,即各个子问题包含公共的子子问题。在这种情况下,如果用分治法会多做许多不必要的工作,重复求解相同的子子问题。而动态规划将每个子问题的解求解的结果放在一张表中,避免了重复求解。...
分类:
其他好文 时间:
2014-07-12 19:20:19
阅读次数:
258
大概了解了背包九讲前面四章的内容。先 ORZ DD大神一分钟……59,58,57……
……3,2,1。好,结束,总结一下三种背包问题,01,完全,多重。都隶属于动态规划问题。
下面这是个人四天来的学习体会。
区别方式也很简单:
①物品数量只有一个,只存在放和不放的区别,01背包。
②物品数量有无限多个,或者能完全把背包装满,完全背包。
③物品数量有限而且不能...
分类:
其他好文 时间:
2014-07-12 17:05:33
阅读次数:
301
Table of Contents1 遇到难题怎么办?2 什么是P、NP、NP-Complete和NP-hard3 P = NP ????4 参考1遇到难题怎么办?遇到一个问题,通常我们思考的是如何解它。于是就有了贪心、分治、动态规划等等算法;但也有一些问题,挠破了头也想不到高效的算法。怎么办?假如...
分类:
其他好文 时间:
2014-07-12 15:51:21
阅读次数:
220
POJ 1160 Post Office (动态规划)
题目大意:
有n个村庄,m个邮局,每个村庄的位置坐标告诉你,现在要将m个邮局设立在这n个村庄里面,问你最小花费是多少?花费为每个村庄到最近的邮局的距离和。
解题思路:
dp[i][j] 记录 i个邮局 j个村庄的最小花费,cost[k+1][j],记录在k+1号村庄到 j 号村庄设立一个邮局的最小花费。
那么:dp[i][j]=min { dp[i][k]+cost[k+1][j] }
最后输出dp[m][n]即可。
但是在k+1号村庄到 j 号村...
分类:
其他好文 时间:
2014-07-10 17:28:24
阅读次数:
168