区间DP基础题
只贴代码
#include
#include
#include
#include
using namespace std;
#define maxn 0xfffffff
int main()
{
int n,i,j,k,l;
int num[1111],dp[1111][1111];
scanf("%d",&n);
...
分类:
其他好文 时间:
2015-08-04 21:08:31
阅读次数:
138
??
Cheapest Palindrome
Time Limit: 2000MS
Memory Limit: 65536K
Total Submissions: 6894
Accepted: 3344
Description
Keeping track of all the cows can be a tricky task ...
分类:
其他好文 时间:
2015-08-03 22:49:12
阅读次数:
216
题目链接:http://poj.org/problem?id=1651题意:初使ans=0,每次消去一个值,位置在pos(pos!=1 && pos !=n)
同时ans+=a[pos-1]*a[pos]*a[pos+1],一直消元素直到最后剩余2个,求方案最小的ans是多少?代码:#include
#include
#include
#inc...
分类:
其他好文 时间:
2015-08-03 06:44:49
阅读次数:
283
此题可以转化为最优矩阵链乘的形式,d(i, j)表示区间[i, j]所能得到的最小权值。枚举最后一个拿走的数a[k],状态转移方程为d(i, j) = min{ d(i, k) + d(k, j) + a[i] * a[k] * a[j] } 1 #include 2 #include 3 #i.....
分类:
其他好文 时间:
2015-08-03 00:47:56
阅读次数:
161
染色有三个条件:对于每个点来说要么不染色,要么染红色,要么染蓝色对于每对配对的括号来说,有且只有一个一边的括号被染色相邻的括号不能染成相同的颜色首先可以根据给出的括号序列计算出括号的配对情况,具体来说就是第i个括号与R[i]个括号配对。对于一个正规配对括号序列(correct bracket seq...
分类:
其他好文 时间:
2015-08-02 23:04:01
阅读次数:
211
求一个括号的最大匹配数,这个题可以和UVa 1626比较着看。注意题目背景一样,但是所求不一样。回到这道题上来,设d(i, j)表示子序列Si ~ Sj的字符串中最大匹配数,如果Si 与 Sj能配对,d(i, j) = d(i+1, j-1)然后要枚举中间点k,d(i, j) = max{ d(i,...
分类:
其他好文 时间:
2015-08-02 16:27:16
阅读次数:
101
d(i, j)表示第i天到第j天至少要穿多少件衣服。先不考虑第i天和后面 i+1 ~ j 天的联系,那就是至少要穿 1 + d(i+1, j)件衣服。再看状态转移,如果后面第k(i+1 ≤ k ≤ j)天所穿的衣服和第i天一样的话,那么完全可以把第i+1~k-1天所穿的衣服脱下来。所以状态转移方程就...
分类:
其他好文 时间:
2015-08-02 15:11:08
阅读次数:
87
D题说的是 你选定一个区间如[l r] 将这个区间内的每个数都加上1,然后求将这整个整个序列都变成h的方案数有多少种 没有一个位置会有超过1次方[ 或者放 ]考虑当前位置放的是什么 有5种- 不放[ 右开区间] 左开区间[] 自己一个区间][ 开始一个区间关闭一个区间dp[i][open] 表示第i...
分类:
其他好文 时间:
2015-08-02 00:55:05
阅读次数:
97
区间DP#include#include#include#includeusing namespace std;char s[1000];int dp[105][105];int main(){ int i,j,k; while(~scanf(" %s",s)) { ...
分类:
其他好文 时间:
2015-07-30 11:04:38
阅读次数:
155
经典的区间DP,对于每个字符,在原字符串加上这个字符的代价是一个值,移除又是一个值,求把原字符串变成回文串的最小代价。经典的区间DP,状态转移方程见代码。在输入进行了一个处理,我们把对一个字符的增与删的操作的代价压缩成为一个数,代表对该字符进行增或删代价,把另一个相对较大的代价则忽略掉。因为在一遍插入一个字符与在另一边删除一个同样的字符对形成的贡献效果一样(可以仔细思考一下)。...
分类:
其他好文 时间:
2015-07-29 19:27:11
阅读次数:
162