
动态规划
文章平均质量分 81
CCSU_HelloWorld
来得很匆忙
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最长公共子序列
最长公共子序列,英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。而最长公共子串(要求连续)和最长公共子序列是不同的。 动态规划的一个计算两个序列的最长公共子序列的方法如下: 以两个序列 X、Y 为例子: 设有二维数组f原创 2013-08-04 11:37:57 · 473 阅读 · 0 评论 -
最长上升子序列
刚刚开始学习动态规划(Longest Increasing Subsequence),就从最长上升子序列开始吧。最长上升子序列是非常经典的动态规划的题目,也是很基础的题目。对于这题的有两种算法,时间复杂度分别为O(n*logn)和O(n^2) 。 动态规划求解思路分析:(O(n^2)) 经典的O(n^2)的动态规划算法,设A[i]表示序列中的第i个数,F[i]表示从1到i这一段原创 2013-08-03 15:58:27 · 447 阅读 · 0 评论 -
最长公共上升子序列
hdu 1423 最长公共上升子序列, 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1423 代码如下: #include #include #include using namespace std; #define N 505 int ncase, n, m, a[N], b[N], dp[N][N]; int main() {原创 2013-08-04 22:08:03 · 492 阅读 · 0 评论 -
hdu 2191 多重背包
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2191 题目大意:现在你一共有资金n元,市场上有m中大米,每种大米都是袋装的,而且价格不等,购买大米时只能整袋购买。现在问在有限的资金下最多能够购买多少公斤的大米。 方法:多重背包,对于每种大米的选择,能够用完全背包就用完全背包进行优化,不能够用完全背包优化就进行二进制优化。 代码: #incl原创 2013-09-04 19:54:21 · 394 阅读 · 0 评论