HDU 6212 Zuma(好难啊经典区间dp)
发布日期:2021-06-30 10:24:14 浏览次数:2 分类:技术文章

本文共 768 字,大约阅读时间需要 2 分钟。

定义 f [ i ] [ j ] f[i][j] f[i][j]为消除 [ i , j ] [i,j] [i,j]的最小花费

如果 a [ i ] a[i] a[i] a [ j ] a[j] a[j]同色,那么可以消除中间再消两边

f [ i ] [ j ] = f [ i + 1 ] [ j − 1 ] + ( 消 除 a i , a j 的 代 价 ) f[i][j]=f[i+1][j-1]+(消除a_i,a_j的代价) f[i][j]=f[i+1][j1]+(ai,aj)

也可以采用分段消除枚举分割点 k k k

f [ i ] [ j ] = f [ i ] [ k ] + f [ k + 1 ] [ j ] f[i][j]=f[i][k]+f[k+1][j] f[i][j]=f[i][k]+f[k+1][j]

一般的区间dp就这么完事了,但是这个不同

两端的球可以和中间某个球合并

f [ i ] [ j ] = f [ i + 1 ] [ k − 1 ] + f [ k + 1 ] [ j − 1 ] f[i][j]=f[i+1][k-1]+f[k+1][j-1] f[i][j]=f[i+1][k1]+f[k+1][j1]

#include 
using namespace std;const int maxn = 309;char s[maxn];int a[maxn],f[maxn][maxn],casenum;int main(){
int t; scanf("%d",&t); while( t-- ) {
scanf("%s",s); int n = strlen( s ),top=1; a[top] = 1; for(int i=1;i

转载地址:https://issue-is-vegetable.blog.csdn.net/article/details/109738093 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:HaHa‘s Morning HRBUST - 1259(普通状压)
下一篇:HDU 6103 Kirinriki(尺取好题)

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月07日 05时40分20秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章