题意:
给出增加或减少某个字符的代价。
给你一个串,求让它变成回文串的最小代价。
思路:
和求次数一样。
然后注意的是其实增加和减少的性质是一样的。所以对于每个字符,取修改代价最小的就行了。
意思就是取增加和减少的最小值。
其他就同求次数的区间dp了。
代码:
#include"cstdlib"
#include"cstdio"
#include"cstring"
#includ...
分类:
其他好文 时间:
2015-05-07 16:55:12
阅读次数:
89
题意:题目:有一个队列,每个人有一个愤怒值D,如果他是第K个上场,不开心指数就为(K-1)*D。但是边上有一个小黑屋(其实就是个堆栈),可以一定程度上调整上场程序dp[i][j]表示从第i个人到第j个人这段区间的最小花费(是只考虑这j-i+1个人,不需要考虑前面有多少人)那么对于dp[i][j]的第...
分类:
其他好文 时间:
2015-05-07 10:06:10
阅读次数:
153
题意:求一个环的最长回文序列,是序列不是串链接:点我起点是可以任意的,所以只要求出每个区间的最长回文序列之后取max(dp[1][i]+dp[i+1][n]),即可得最终答案本来是想扩展两倍的,但是后来的最大不太好想将 环倍增成链,求出窗口为n的最长子序列,但这不是最终的解,你可以试看看Sample...
分类:
其他好文 时间:
2015-05-07 06:19:47
阅读次数:
114
一开始想到的是,用一个标志位记录取第i个数的时间,但后来发现这个方法不行,可能性太多,没办法推
然后就看了解题报告的思路,说是用区间dp,状态是设出来了,但受固有思维影响,老想着怎么顺着推。
最后实在想不出了,看了代码,才发现要逆着推,从结束状态开始推起,这样公式就出来了
为了保证每一层循环要用到的值都已经被计算出来了,按区间长度进行枚举
/*
dp[i][j]:剩下第i个至第j个物品时,...
分类:
其他好文 时间:
2015-05-06 22:59:06
阅读次数:
152
Treats for the Cows
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 4375
Accepted: 2226
Description
FJ has purchased N (1
The treats are interesting...
分类:
其他好文 时间:
2015-05-06 21:16:03
阅读次数:
136
// poj 1141 Brackets Sequence
// 也是在紫书上看的一题,uva就是多了一个t组数据。
// 经典区间dp
// dp(i,j)表示区间[i,j]内所需要增加的括号数目
// 则分为两种情况
// 一种是s[i]和s[j]是匹配的则
// dp[i][j] = min(dp[i][j],dp[i+1][j-1])
// 另外一种情况是不匹配
// dp[i][j] =...
分类:
其他好文 时间:
2015-05-05 00:05:14
阅读次数:
147
这次5.1打了一场个人赛,已经连赛了三周了,有点疲惫感觉,可能自己太水了,每次都有点小紧张。这次只解出来三道题,然而有一道按位与按位或的水题不知道思路实在是做题太少,还有就是第一题区间DP,也消耗了不少的时间,但是没有成功的写出来,还是不够熟练啊。下面写报告A. System Administrat...
分类:
其他好文 时间:
2015-05-04 01:04:06
阅读次数:
437
题意:最少添加括号,并输出链接:点我第一个区间dp题,果断百度的蛮好理解,这里直接粘贴别人的题解啦,d是区间内需要添加的括号数对于任何s[i]..s[j]应该分为两种情况考虑,一种是s[i]='('&& amp;s[j]=')' 或者s[i]='['&&s[j]=']',如果是这种情况,则d[i][...
分类:
其他好文 时间:
2015-05-03 18:57:00
阅读次数:
122
D - Coloring Brackets
Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d
& %I64u
Submit Status Practice CodeForces
149D
Description
Once Petya read a problem about...
分类:
其他好文 时间:
2015-05-02 09:43:12
阅读次数:
220
// uva 10003 Cutting Sticks 区间dp
// 经典的区间dp
// dp(i,j)表示切割小木棍i-j所需要的最小花费
// 则状态转移为dp(i,j) = min{dp(i,k) + dp(k,j) + a[j]-a[i])
// 其中k>i && k<j
// a[j] - a[i] 为第一刀切割的代价
// a[0] = 0,a[n+1] = L;
// dp数组初...
分类:
其他好文 时间:
2015-05-01 23:55:26
阅读次数:
378