
DP
文章平均质量分 77
insistGoGo
这个作者很懒,什么都没留下…
展开
-
聪明的“KK”
一个小动物“KK”正从沙漠区域(矩形)的左上角沿着向右或向下的方向往右下角跑去。KK太聪明了,它居然能在跑的过程中会选择吃掉尽可能多的虫子线路。你知道它吃掉多少虫子吗?【标准输入】第一行:N M 表示沙漠是一个N*M的矩形区域接下来有N行:每行有M个正整数,Xi1 Xi2 ……Xim 表示各位置中的虫子数(单个空格隔开)【标准输出】输出有一个整数原创 2013-07-17 09:00:23 · 1540 阅读 · 0 评论 -
每日一题(49) - 最长回文子串
子串:字符串中连续的字符片段。回文:正着看和反着看都一样的字符串。如abba和abbebba是回文,bbab不是回文。最长回文子串:对于字符串的所有子串,找出是回文且最长的那一个举例:(1)babcbabcbaccba的最长回文子串是abcbabcba(2)bbbb的最长回文子串是其本身这里给出DP算法,其属于区间动态规划。代码#include #include原创 2013-07-23 20:36:27 · 1077 阅读 · 0 评论 -
每日一题(50) - 绝对值最大的子序列和以及其区间
题目来自网络题目:给定数组,求其 绝对值最大的子序列和以及对应的区间举例:数组{-5,4,-20,16,-2,-3}的绝对值最大的子序列和为-21,其区间为[0,2]思路:可以使用动态规划求解由于求解的是绝对值最大,需要考虑负值。结果可以转化为要么是和最大(正数),要么是和最小(负数)。可以使用两个数组保存以第i个数为止的子序列之和的最大值和最小值,之后可以根据这个最大值和最小原创 2013-07-24 15:03:29 · 2398 阅读 · 0 评论 -
每日一题(51) - 最大子序列积以及区间
#include <iostream>#include <assert.h>using namespace std;//Max[i] = max(nArr[i],Max[i - 1] * nArr[i],Min[i - 1] * nArr[i])//Min[i] = min(nArr[i],Max[i - 1] * nArr[i],Min[i - 1] * nArr[i]); //初始化//Max[0] = nArr[0]//Min[0] = nArr[0]int Max(int x,i原创 2013-07-24 21:18:34 · 1002 阅读 · 0 评论 -
求解区间最值的ST算法
作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例举例:给出一数组A[0~5] = {5,4,6,10,1,12},则区间[2,5]之间的最值为1。方法:ST算法分成两部分:离线预处理 (nlogn)和 在线查询(O(1))。虽然还可以使用线段树、树状链表等求解区间最值,但是ST算法要比它们更快,而且适用于在线查询。(1)离线预处理:运用DP思想,用于求解区间最值,并保原创 2013-08-12 18:24:56 · 8077 阅读 · 4 评论 -
编辑距离
题目:假设,字符串仅有三个基本操作:删除一个字符、插入一个字符和将一个字符修改成另一个字符。基本的字符操作:进行了一次上述三种操作的任意一种操作两个字符串的编辑距离的定义:通过上述的基本操作,我们可以把字符串a变成字符串b,所需要的最少基本字符操作次数举例:snowy 与 sunny 的编辑距离为3我们的任务:计算任意两个字符串的编辑距离状态转移方程d[ i ][ j原创 2013-02-01 15:42:09 · 915 阅读 · 1 评论 -
背包问题九讲笔记_多重背包
摘自Tianyi Cui童鞋的《背包问题九讲》,稍作修改,方便理解。本文包含的内容: 问题描述 基本思路(和完全背包类似) 转换为01背包问题求解(直接利用01背包)---------------------------------------------1、问题描述已知:有一个容量为V的背包和N件物品,第i件物品最多有Num[i]件原创 2013-09-05 21:56:22 · 11260 阅读 · 3 评论