E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
.....区间dp
2013ACM省赛题目
地址就贴这一个吧 都在附近 当时回来也没做做 一伤心了 二是当时实在太弱了 先补两道DP E题的
区间DP
dp[i][j] 截止到i位置以字母j为结束的上升序列 正序 逆序各来一遍
·
2015-11-12 21:29
ACM
数据结构练习(34)对称子字符串的最大长度
http://zhedahht.blog.163.com/blog/static/25411174201063105120425/ 思路: 最简单的
区间dp
思想。
·
2015-11-12 20:02
数据结构
HDOJ 4283 You Are the One(经典
区间dp
)
题意: 给定一个序列,序列内的人有屌丝值Di,第i个人如果是第k个出场,那么他的屌丝值为Di * (k-1), 但是导演可以通过一个栈来调整序列里面人的出场顺序。 求一个出场序列使总屌丝值最小。 思路: 题意一开始有点儿混乱,但是最后要明白一点:导演对于这个出场顺序的影响只是一定程度上的。比如说: 1. 第一个人第k个出场 2. 那么要求2~k的人都要在第一个人前面出场
·
2015-11-12 20:37
one
hdu 5151 Sit sit sit
这道题是一道
区间dp
。把一个很大的区间化成多个很
·
2015-11-12 20:28
HDU
uva 10003 Cutting Sticks (
区间dp
)
本文出自 http://blog.csdn.net/shuangde800 题目链接: 打开 题目大意 一根长为l的木棍,上面有n个"切点",每个点的位置为c[i] 要按照一定顺序把每个点都砍段,最后变成了n+1段 每砍一次,就会有一个花费,例如长度为10,
·
2015-11-12 18:09
uva
UVa 10891 Game of Sum(经典博弈
区间DP
)
题意: 给定n个数字,A和B可以从这串数字的两端任意选数字,一次只能从一端选取。 并且A B都尽力使自己选择的结果为最大的,可以理解成A B每一步走的都是最优的。 如果A先选择,则A B差值最大是多少。 思路: http://hi.baidu.com/knowledgetime/item/d8ec9420a2b2f98daf48f5a4 第一次做类似的博弈题目,不过还是不难理解的。上面
·
2015-11-12 17:22
game
UVa 10304 Optimal Binary Search Tree(
区间DP
)
题意: 前提要了解什么是二叉查找树,然后再是最优二叉查找树。 最优二叉查找树是指,在二叉查找树的基础上,要求总的编码长度最小(类似huffman编码)。 思路: 看似十分复杂,其实我们抛开许多细节可以发现,作为根节点,其左右子树一定也是最优的。 基于这个思想,就可以很自然的想起区间动态规划,从小规模最优解逐渐扩大。 如果区间规模增大,则要选出一个新的根节点,而区间上除了根节点左右最优解
·
2015-11-12 17:16
Binary search
UVa 10617 Again Palindrome(经典回文串
区间DP
)
思路: 涉及到回文字符串,首先要想到的肯定是
区间DP
,如何写出状态转移方程? 直接从题意切入:dp[i, j]表示区间[i, j]最多有多少个这样的子串。
·
2015-11-12 17:16
ROM
UVa 10739 String to Palindrome(经典回文串
区间DP
)
思路: 类似于以前的只能进行插入/删除操作的回文字符串,这次多了一个替换操作,于是就有了下面的几种情况: (
区间DP
即是不断向两侧扩大规模) 1. s[i] == s[j] 显然只需要考虑i与j之间的字符串即可
·
2015-11-12 17:14
String
UVa 348 Optimal Array Multiplication Sequence(链式DP/
区间DP
)
思路: 简单的
区间DP
,麻烦的是要把这个顺序打印出来,要用到递归,需要学习,第二次碰到。
·
2015-11-12 17:06
sequence
UVa 10003 Cutting Sticks(
区间DP
)
思路: 典型的
区间DP
,要额外添加2个点:0和l,于是区间从1不断扩展到n+1,dp[i][j]代表点i到点j所要花费的最小代价。
·
2015-11-12 17:03
uva
【DP练习】
区间DP
1、LightOJ 1422 Halloween Costumes 题目链接:http://lightoj.com/volume_showproblem.php?problem=1422 题意:gappu要参加n场万圣节晚会,每场他都要cosplay,所穿的衣服可以叠加穿在身上,但是一旦脱掉就不会再穿,给出每场晚会要穿的衣服编号,后面的场次服装可以与前面的相同,问你他最少需要消耗多少件衣服。
·
2015-11-12 15:27
dp
POJ 2955 (
区间DP
)
题目链接: http://poj.org/problem?id=2955 题目大意:括号匹配。对称的括号匹配数量+2。问最大匹配数。 解题思路: 看起来像个区间问题。 DP边界:无。区间间隔为0时,默认为memset为0即可。 对于dp[i][j],如果i和j匹配,不难有dp[i][j]=dp[i+1][j-1]+2. 然后枚举不属于两端的中点, dp[i][j]=
·
2015-11-12 13:43
poj
LightOJ 1422 (
区间DP
)
解题思路: 很难想出这题是个
区间DP
。 DP边界: dp[i][i]=1。也就是说每个舞
·
2015-11-12 13:43
dp
Vijos 1100 (
区间DP
)
那么就变成枚举根的
区间DP
问题。 由于要输出先序遍历,则用m[i][j]记
·
2015-11-12 13:42
OS
POJ 1651 (
区间DP
)
题目链接: http://poj.org/problem?id=1651 题目大意:加分取牌。如果一张牌左右有牌则可以取出,分数为左牌*中牌*右牌。这样最后肯定还剩2张牌。求一个取牌顺序,使得加分最少。 解题思路: 矩阵链乘的变种题。 假设有10、20、30、40、50五张牌。 如果我想要最后取30,则应该先取20、40,这样就还剩10、30、50三张牌了。 不难发现取20是
·
2015-11-12 13:41
poj
ZOJ 1679 Telescope(
区间DP
变型题)
题意: 给定一个圆和圆周上面的 N 个点,选择其中的 M 个,按照在圆周上的顺序连成一个 M 边形,使得它的面积最大。 (黑书 147 圆和多边形) 思路: 1. 我一开始尝试的是 dp[i, j] 表示前 i 边形在前 j 个点上的最大面积。想来想去,因为三角形的起点和终点无法固定,则要加强下命题; 2. 对于此类循环类型的动态规划,一般想办法和区间 DP 挂上钩。dp[i, d, j
·
2015-11-12 13:45
scope
URAL 1143 Electric Path(带方向的
区间DP
+ 记忆化搜索)
题意: 有 n 个点,他们正好形成一个凸多边形,从某个点开始,且只经过每个点一次,就最终的最短路径。 黑书 133 面,烦恼的青蛙。差不多一样的题目。 思路: 1. 首先路径不能相交,只有不相交的情况下才能找到最短路径; 2. dp[s, L, 0] 表示从 s 点出发,经过 L 个点,最终的最短路径,由 1 可以确定的是:这 L 个点肯定是相邻的; dp[
·
2015-11-12 13:40
Path
POJ 1390 Blocks(
区间DP
+ 记忆化搜索)
题意: 一排带有颜色的砖块,每一个可以消除相同颜色的砖块,每一次可以到块数 k 的平方分数。问怎么消能使分数最大。 思路: 1. 此题是结合区间动态规划和记忆化搜索的好题,状态转移方程不太好想,以下思路还是根据黑书上面的解释来的; 2. dp[i, j, k] 表示区间 [i, j] 并且在区间后面还有长度为 k 的砖块和 j 的颜色一致; 3. 如果 j 就和后面的 k 个结合则有:d
·
2015-11-12 13:39
block
NYOJ 110 决斗(
区间DP
+ 黑书例题)
区间DP
的典型:meet[i][j] = true 的条件是中间存在 k 使得 meet[i][k] == true && meet[k][j] == true && i
·
2015-11-12 13:38
dp
POJ 1141 Brackets Sequence(
区间DP
+ 打印路径)
题意: 寻找一种正确的括号匹配方案,并且打印出来。 思路: 1. 转移方程为:dp[i][j] = min(dp[i][k] + dp[k+1][j]); 如果 s[i] == s[j] 则还有 dp[i][j] = min(dp[i][j], dp[i+1][j-1]); 2. 因为涉及到打印路径,所以还要单独开辟一个数组出来,记录每次选择的结果。这也差不多是打印路径一类题定势的解题步骤
·
2015-11-12 13:34
sequence
UVA1351-----String Compression-----
区间DP
(记忆化搜索实现)
本文出自:http://blog.csdn.net/dr5459 题目地址: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4097 题目意思: 以下内容出自http://blog.csdn.net/shuangde800
·
2015-11-12 12:03
compression
POJ2955:Brackets(
区间DP
)
Description We give the following inductive definition of a “regular brackets” sequence: the empty sequence is a regular brackets sequence, if s is a regular brackets sequence, then (s) and [s
·
2015-11-12 11:35
rack
UVALive 4857 Halloween Costumes
区间dp
。对于最左边的点: 1、在该点穿的衣服只有该点用的到,即穿上就脱下。
·
2015-11-12 10:09
live
poj 3280 Cheapest Palindrome(
区间DP
)
Cheapest Palindrome Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5995 Accepted: 2922 Description Keeping track of all the cows can be
·
2015-11-12 10:29
heap
HDU 2517 / POJ 1191 棋盘分割
区间DP
/ 记忆化搜索
题目链接: 黑书 P116 HDU 2157 棋盘分割 POJ 1191 棋盘分割 分析: 枚举所有可能的切割方法. 但如果用递归的方法要加上记忆搜索, 不能会超时... 代码: #include<iostream> #include<cstdio> #include<cstring> #incl
·
2015-11-12 09:40
poj
Vijos 1100 加分二叉树(树形DP)
题目链接 感觉和
区间DP
很类似,觉得还挺简单的,难得1Y,以前的时候直接没思路。。。
·
2015-11-12 09:18
二叉树
NYOJ 536 开心的mdd(
区间DP
)
题目链接 经典的
区间DP
问题,求解矩阵乘法的次数。按记忆化搜索写的。
·
2015-11-12 09:14
dp
HDU 4283 You Are the One(
区间DP
)
比赛的时候卡死在这里,以为是个简单的二维DP,思维被局限了,以前也没怎么做过
区间DP
,没做出,不过还是觉得理解了状态状态转移,代码什么的都是很短。
·
2015-11-12 09:27
HDU
区间dp
-hdu-4745-Two Rabbits
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4745 题目意思: 给n个环状的数,A、B两人沿相反的方向走,每单位时间走一步,要求相同时间两人到达相同的数,且同一位置同一个人不能走两次,走过的位置不能越过。 解题思路: 根据回文非连续序列的性质,从前往后,和从后往前序列是一样的,所以只用求出区间内最长的回文序列即可,又由于是环状,所以
·
2015-11-12 08:23
HDU
POJ 1651 Multiplication Puzzle(
区间DP
)
Multiplication Puzzle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6292 Accepted: 3814 Description The multiplication puzzle is played
·
2015-11-11 18:02
poj
HDU 4632 CF 245H
区间DP
(回文)
先说HDU 4632这道题,因为比较简单,题意就是给你一个字符串,然后给你一个区间,叫你输出区间内所有的回文子序列,注意是回文子序列,不是回文字串。 用dp[i][j]表示区间[i,j]内的回文子序列的个数。 那么可以得到状态转移方程:dp[i][j] = dp[i + 1][j] + dp[i][j - 1] - dp[i + 1][j - 1] + a[i] == a[j] 。 &nbs
·
2015-11-11 18:02
HDU
Codeforces13C–Sequence(
区间DP
)
题目大意 给定一个含有N个数的序列,要求你对一些数减掉或者加上某个值,使得序列变为非递减的,问你加减的值的总和最少是多少? 题解 一个很显然的结果就是,变化后的每一个值肯定是等于原来序列的某个值,因为只需要变为非递减的,所以对于某个数要么不变,要么变成左右附件的某个值。这样我们就可以根据前述条件得出DP方程了:dp[i][j]=min(dp[i][j-1],dp[i-1][j]+|a[i]-b
·
2015-11-11 17:44
codeforces
Codeforces335B - Palindrome(
区间DP
)
题目大意 给定一个长度不超过5*10^4的只包含小写字母的字符串,要求你求它的回文子序列,如果存在长度为100的回文子序列,那么只要输出长度为一百的回文子序列即可,否则输出它的最长回文子序列 题解 这个题很考验思维~~~相当不错的题,想到了就很简单,其实也就是充分利用题设。n的规模为5*10^4,如果不进行一些处理直接上O(n^2)算法肯定会超时,但是题目里有个很重要的条件,那就是如果存在长度
·
2015-11-11 17:42
codeforces
费用提前计算相关的DP(BZOJ2037,POJ3042,ZOJ3469)
在刷ZeroClock大神的
区间DP
专辑,遇见了ZOJ3469,完全不无从下手,然后有人说是论问题,推荐看徐源盛《对一类动态规划问题的研究》这篇论文,果断得膜拜了下,感觉好神奇,可以把未来的费用提前计算好
·
2015-11-11 17:40
poj
UVa11404 - Palindromic Subsequence(
区间DP
+打印路径)
题目大意 给定一个字符串,要求你删除尽量少的字符,使得原字符串变为最长回文串,并把回文串输出,如果答案有多种,则输出字典序最小的 题解 有两种解法,第一种是把字符串逆序,然后求两个字符串的LCS,并记录LCS,长度就等于最长回文串的长度,不过求出来的LCS不一定是回文串,例如下面这个例子 s = 1 5 2 4 3 3 2 4 5 1 reverse(s) = 1 5 4
·
2015-11-11 17:36
sequence
Codeforces149D - Coloring Brackets(
区间DP
)
题目大意 要求你对一个合法的括号序列进行染色,并且需要满足以下条件 1、要么不染色,要么染红色或者蓝色 2、对于任何一对括号,他们当中有且仅有一个被染色 3、相邻的括号不能染相同的颜色 题解 用
区间
·
2015-11-11 17:35
codeforces
Codeforces245H - Queries for Number of Palindromes(
区间DP
)
题目大意 给定一个字符串s,q个查询,每次查询返回s[l…r]含有的回文子串个数(题目地址) 题解 和有一次多校的题目长得好相似,这个是回文子串个数,多校的是回文子序列个数 用dp[i][j]表示,s[i..j]含有的回文子串个数,则dp[i][j]=dp[i][j-1]+dp[i+1][j]-dp[i+1][j-1]+flag[i][j](如果s[i..j]是回文子串则flag[i][j]
·
2015-11-11 17:34
codeforces
Codeforces10D–LCIS(
区间DP
)
题目大意 给定两个序列,要求你求出最长公共上升子序列 题解 LIS和LCS的合体,YY好久没YY出方程,看了网友的题解,主要是参考aikilis的,直接搬过来好了 经典的动态规划优化。 用opt[i][j]表示s[0..i-1]与t[0..j-1]的以t[j-1]结尾的最长上升公共子序列的长度,那么最后的答案是max{opt[n][j] | 1<=j<=m}。 当s[i-
·
2015-11-11 17:34
codeforces
POJ1159 - Palindrome(
区间DP
)
题目大意 给定一个字符串S,问最少插入多少个字符可以使字符串S变为回文串 题解 用dp[i][j]表示把字符串s[i…j]变为回文串需要插入的最小字符数 如果s[i]==s[j]那么dp[i][j]=dp[i+1][j-1] 如果s[i]!=s[j]那么dp[i][j]=min(dp[i+1][j],dp[i][j-1])+1 可以用滚动数组优化一下空间 代码: #include&l
·
2015-11-11 17:33
poj
POJ3356 – AGTC(
区间DP
&&编辑距离)
题目大意 给定字符串X和Y,可以对字符串进行一下三种操作: 1、删除一个字符 2、插入一个字符 3、替换一个字符 每个操作代价是1,问运用以上三种操作把X变为Y所需的最小步数是多少? 题解 定义dp[i][j]为把X的前i个字符转换为Y的前j个字符所需的最小步数 如果X[i]==Y[j]则dp[i][j]=dp[i-1][j-1] 如果X[i]!=Y[j]则dp[i][j]=min
·
2015-11-11 17:30
poj
POJ3280 - Cheapest Palindrome(
区间DP
)
题目大意 给定一个字符串,要求你通过插入和删除操作把它变为回文串,对于每个字符的插入和删除都有一个花费,问你把字符串变为回文串最少需要多少花费 题解 看懂题立马YY了个方程,敲完就交了,然后就A了,爽歪歪,哈哈~~~ dp[i][j]表示把s[i..j]变为回文的最小花费,设cost[0][ch-‘a’]和cost[1][ch-‘a’]分别为插入字符ch和删除字符ch的花费 如果s[i]=
·
2015-11-11 17:29
heap
POJ2192 - Zipper(
区间DP
)
题目大意 给定三个字符串s1,s2,s3,判断由s1和s2的字符能否组成字符串s3,并且要求组合后的字符串必须是s1,s2中原来的顺序、 题解 用dp[i][j]表示s1的前i个字符和s2的前j个字符能否组成s3的前i+j个字符,有两个子问题,dp[i-1][j]和dp[i][j-1],如果dp[i-1][j]为真并且s1[i]==s3[i+j]或者dp[i][j-1]为真并且s2[j]==s
·
2015-11-11 17:28
zip
UVa11584 - Partitioning by Palindromes(
区间DP
)
题目大意 给定一个小写字母组成的字符串S,你的任务是划分成尽量少的回文串 题解 方程就是dp[j]=min(dp[i-1]+1)(i<=j,s[i..j]是回文串) 代码: #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> usin
·
2015-11-11 17:27
partition
hdu 4597 Play Game(
区间dp
)
本文出自 http://blog.csdn.net/shuangde800 题目链接: hdu-4597 题意 Alice和Bob玩一个游戏,有两个长度为N的正整数数字序列,每次他们两个 只能从其中一个序列,选择两端中的一个拿走。他们都
·
2015-11-11 16:58
game
hdu 1231 最大连续子序列(dp)
id=17322 裸最大连续子序列 竟然差点拿来当
区间dp
来做= = #include<cstdio> #include<algorithm
·
2015-11-11 16:22
HDU
NYOJ 题目15 括号匹配(二)(
区间DP
)
思路 : 本来以为只是个小模拟,没想到是个
区间DP
,还是对DP不了解。 DP[i][j]代表着从字符串 i 位置到 j 位置需要的最小括号匹配。
·
2015-11-11 15:44
dp
POJ 1141 Brackets Sequence(
区间DP
)
Brackets Sequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 25861 Accepted: 7281 Special Judge Description Let us de
·
2015-11-11 13:03
sequence
2012CSU_ACM集训中期检测 简要题解
F:重启
区间DP
。可以发现,每次重启的机器一定是当前两端机器的其中一个。 G:维护序列 线段树。记录
·
2015-11-11 12:55
2012
POJ 2671 Jimmy's Bad Day ★ (
区间DP
)
题目大意:一个圆圈中有很多n个点(包括起点),其中除了起点外其他点除都有需要送的包裹。现在已经迟到了,而每到一个点处送了包裹都要因为迟到而每迟到1min扣和包裹数相同的钱。给定n和每个点的包裹数还有前一个点到下一个点的时间(来回一样),求最少需要赔的钱。 一类折线问题的DP --- 以某个点位中心,不断扩展两边折返,形成区间更新 clock_time[i]0到i点时间。顺时针 ant
·
2015-11-11 12:25
poj
上一页
25
26
27
28
29
30
31
32
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他