[kuangbin带你飞]专题二十二 区间DP
[kuangbin带你飞]专题二十二 区间DP
ZOJ 3537 Cake
判断闭包+最优三角划分
注意是用求出的闭包来算转移
LightOJ 1422 Halloween Costumes
大意:
n个宴会,对于每一个宴会,都要穿一种礼服,礼服可以套着穿,但是脱了的不能再用,参加宴会必须按顺序来,从第一个到第N个,问参加这些宴会最少需要几件礼服
思路:
当c[j-1] = c[j] 时显然有dp[ i ] [ j ] = dp[ i ] [j-1]
更新是更新当第k场舞会衣服与第j场衣服一致时,假设第k场衣服一直穿着
POJ 2955 Brackets
大意:
给出一个字符串,问满足括号匹配的最长区间是多少
满足括号匹配的有:
思路:
当s[i]==s[j]s[i]==s[j]时,dp[i][j]==dp[i+1][j−1]+2dp[i][j]==dp[i+1][j−1]+2
然后直接转移就行
CodeForces 149D Coloring Brackets
大意:
给出一个能被匹配的括号字符串,现在对这些括号进行涂色,要求满足:
对于每一对配对的括号,有且只有一个括号染色
相邻的括号,如果都染色了,颜色不能相同
每个括号要么不染色,要么染红色,要么染绿色
思路:
首先利用栈对括号进行匹配
利用dfs写区间dp,枚举两侧的颜色,然后进行转移
如果当前区间的左右端点配对,那么直接进入下一层区间
否则枚举左端点对应的配对的右括号,枚举全部的颜色即可
POJ 1651 Multiplication Puzzle
大意:
给出n个数,每次从没有取出的数中取出一个数,花费是这个数和两边的还没有取出来的数的乘积,最左边和最右边的数不能取,问最后花费最小是多少
思路:
枚举中点转移即可,注意转移的区间是 i,k 和 k , j,不是i,k 和 k+1 , j
区间dp就是要认真分析区间边界啊...
ZOJ 3469 Food Delivery
大意:
在X-轴上有一个餐厅,以及有n个点要送外卖。餐厅坐标为x,工人的速度为v−1v−1,也就是 1/v 米每分钟。给出n个点的x坐标和b,外卖没送到,客户就会不愉快,每一分钟的不愉快指数增加b。问怎么样的送货策略,使得所有客户的总不愉悦指数和最小。
思路:
可以推出,当需要送区间l到r的两端的外卖时,必然是从区间l到r-1或者l+1到r转移过来,也就是说区间内部的点已经送过了,不然他会先送区间内部的点
但是员工肯定要么是在区间左端点要么是在区间右端点,所以需要多开一维维护是在左边还是在右边
HDU 4283 You Are the One
大意:
有n个人,v [ i ] 表示每个人的愤怒值,现在他们依次上台表演,如果i是第k个上台,那么他的愤怒值为(k-1)* v[i] 现在有一个栈,可以让一些人进栈,让后面的人先上台表演,这样可以改变部分顺序,求所有人最小的愤怒值和
思路:
我们考虑区间[l,r],如果第一个人是该区间中第k个上场的,那么区间[l+1,r]中的人应当先于第一个上场,区间[l+k+1,r]中的人必定要在第一个人之后上场,这样一个区间就被划分成了两个区间。
dp[ i + 1 ] [ i + k - 1]表示前 k - 1个人的沮丧值,a[i] * (k-1)表示第i个人的沮丧值,而i+k到j的这些人由于出场位置都增加了K,所以总的沮丧值增加了k * (sum[j] - sum[i+k-1])
HDU 2476 String painter
大意:
给出两个字符串s1,s2。对于每次操作可以将 s1 串中的任意一个子段变成另一个字符。问最少需要多少步操作能将s1串变为s2串。
思路:
这个题先考虑怎么由空串转化s2,
f [ i ] [ j ] 表示从空串到s2最少的次数,
则有f[ i ] [ j ] = s [ i + 1 ] [ j ] +1,
若[i + 1, j ]存在一个 k ,使s2[ i ]==s2[ k ],则f[ i ] [ j ]=min{f[i+1] [k ]+f[ k+1] [ j ] },
也就是说i和k用同一次变换
然后再考虑把s1刷成s2的代价
设sum[i]表示把s1[1,i]刷成s2[1,i]的次数
当s1[i]==s2[i]时,可以不刷,显然sum[i]=sum[i-1]
否则,在区间内找最小次数sum[i]=min(sum[j] + f [j+1] [i])
__EOF__
本文链接:https://www.cnblogs.com/dyhaohaoxuexi/p/14435141.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)