
动态规划
文章平均质量分 81
Exchan
A AC a day,keep the doctor away!
展开
-
入门 - 最长公共子序列 Lcs
1006 最长公共子序列Lcs基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。比如两个串为:abcicbaabdkscabab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。Inp原创 2017-05-17 13:06:18 · 188 阅读 · 0 评论 -
DP求最小花费 - 九度OJ 1086
DP求最小花费,可以用最短路的思想来做。不过最短路是二维矩阵,这里我们做的是一维。题目1086:最小花费题意:给你n个点,标号从1 - n,再给出n-1条边,代表从1到2...n之间的距离。三种车票,长度为L1,L2,L3,价格为C1,C2,C3,问你从坐标a到b最少的花费(在坐标点换乘,超出的距离也只能在到达的最近点换乘)。数据范围:0这就相当于最短路,用f[ ]数组记录,一原创 2017-08-06 23:06:39 · 787 阅读 · 0 评论 -
01背包查找路径
做01背包,我们能知道最后的结果,若果求路径,我们可以根据状态转移方程逆推。看一个百度之星2017年的题度度熊的午饭时光Problem Description度度熊最期待每天的午饭时光,因为早饭菜品清淡,晚饭减肥不敢吃太多(胖纸的忧伤T.T)。百度食堂的午餐超级丰富,祖国各大菜系应有尽有,度度熊在每个窗口都有爱吃的菜品,而且他还为喜爱的菜品打了分,吃货的情怀呀(>.原创 2017-08-06 23:00:08 · 445 阅读 · 0 评论 -
完全背包+最值问题
在解决完全背包问题时,通常会遇到两种问题,一种是恰好将背包装满,一种是不要求恰好装满。是否恰好装满只是初始化的会有区别。恰好装满 如果要求恰好装满背包,那么在初始化时除了f[0]为0,其它f[1..V]均设为-∞(求最小值设为∞),这样就可以保证最终得到的f[N]是一种恰好装满背包的最优解。不一定恰好装满 如果并没有要求必须把背包装满,而是只希望价格尽量大,初始化时应该将f[0..原创 2017-08-06 10:12:59 · 883 阅读 · 0 评论 -
LCS算法(最长公共子序列问题)
最长公共子序列问题(非连续的)首先将要看到如何运用动态编程查找两个 DNA 序列的最长公共子序列(longest common subsequence,LCS)。发现了新的基因序列的生物学家通常想知道该基因序列与其他哪个序列最相似。查找 LCS 是计算两个序列相似程度的一种方法:LCS 越长,两个序列越相似。子序列中的字符与子字符串中的字符不同,它们不需要是连续的。例如,ACE 是 ABC转载 2016-08-18 19:15:54 · 988 阅读 · 0 评论 -
基础DP - 循环数组最大子段和
1050 循环数组最大子段和N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1],a[n],a[1],a[2]这样的序列)。当所给的整数均为负数时和为0。例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。I原创 2017-05-22 12:08:37 · 295 阅读 · 0 评论 -
数位DP - 数字1的数量
1009 数字1的数量基准时间限制:1 秒 空间限制:131072 KB 分值: 5难度:1级算法题给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。Input输入N(1 Output输出包含1的个数Input原创 2017-05-20 12:03:21 · 1283 阅读 · 0 评论 -
基础DP - 编辑距离
1183 编辑距离基准时间限制:1 秒 空间限制:131072 KB 分值: 0难度:基础题编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如将kitten一字转成sitting:si原创 2017-05-19 18:33:10 · 275 阅读 · 0 评论 -
RMQ求区间最值
RMQ算法,是一个快速求区间最值的离线算法,预处理时间复杂度O(n*log(n)),查询O(1),所以是一个很快速的算法,当然这个问题用线段树同样能够解决。问题:给出n个数ai,让你快速查询某个区间的的最值。(一)首先是预处理,用动态规划(DP)解决。设A[i]是要求区间最值的数列,F[i, j]表示从第i个数起连续2^j个数中的最大值。(DP的状态)转载 2017-06-04 21:42:24 · 302 阅读 · 0 评论 -
基础DP - 正整数分组问题
1007 正整数分组基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题将一堆正整数分为2组,要求2组的和相差最小。例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。Input第1行:一个数N,N为正整数的数量。第2 - N+1行,N个正整数。(N原创 2017-05-19 12:59:55 · 356 阅读 · 0 评论 -
蓝桥杯-对局匹配 | 分组+线性DP
问题描述(题目链接:对局匹配) 小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K,系统都不会将他们匹配。 现在小明知道这个网站总共有N名用户,以及他们的积分分别是A1, A2, ... AN。 小明想了解最多可能有多少名用户同时在线寻找对...原创 2018-05-15 18:06:32 · 755 阅读 · 0 评论