区间dp
小菜鸡加油
菜鸡
什么都能折磨
展开
-
312. 戳气球(区间dp)
链接:https://leetcode-cn.com/problems/burst-balloons/首先这个长度为500的范围可以猜测出是O(n^3)区间dp这里主要讲述为什么状态定义要定义成开区间而不是闭区间最大的原因:闭区间计算出来的状态是无法保证正确性的假如使用一开始的闭区间定义去做:原先定义dp[i,j]:戳爆i~j下标气球的最大积分。举一个样例:nums = [3,1,5,8](以下标开始为1进行讲述)枚举k作为区间内最后一个被戳爆的气球,那么此时若最后一下要戳爆k,若想让k成原创 2022-03-14 11:48:07 · 812 阅读 · 0 评论 -
[知识总结]Dp-区间dp
前言:想重新把之前学过或者没理解透的重新理理。然而由于个人水平有限,所以东西比较基础。会慢慢更的。区间dp思路:1.范围一般在n^2/n^32.思路一般先考虑两端点是否相同。根据相同与否来考虑两个方程的转移。相同如何转移,不相同如何转移。然后看能否枚举断点。断点部分可以和端点产生联系更新答案。3.转移对于转移的要求:在转移方程中做到不漏就完全没问题(不重可以不必要),其实就是在分析题目的时候可以找到可以概括所有情况的方案(就这个意思),其实只要转移方程是对的,多一个两原创 2021-05-02 14:08:02 · 373 阅读 · 2 评论 -
Coloring Brackets(区间dp-不错的题)
https://codeforces.com/contest/149/problem/D题意: 给一匹配的括号序列,要求每对括号恰有一个被染成蓝或红色,要求相邻的括号不同色,求方案数思路:首先考虑到每次搜的一个连续区间需要是合法的括号匹配。所以我开始想着直接把每一个子串的合理位置存下来。但是实际上最长串的每个合理位置都是固定的。因此开始括号匹配存下来即可然后由于要求是合法子串,不方便递推,dfs记忆化搜索更加方便。考虑dfsdfs的过程中把判断当前子串是否合法写成函数,更加简洁明了。考虑当前的原创 2021-11-10 20:13:43 · 182 阅读 · 0 评论 -
D. Maximum Sum of Products(区间dp)
https://codeforces.com/contest/1519/problem/D思路:刚好最近在整理区间dp。这题 看着像个区间dp.dp[l,r]为反转这段区间获得的新价值。然后递归[l+1,r-1]并且dp状态记录下来。#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include原创 2021-04-30 01:33:29 · 705 阅读 · 0 评论 -
C. The Sports Festival(思维+贪心+区间dp)
https://codeforces.com/contest/1509/problem/C思路:不妨先变成有序的递增。然后发现对于 x1<x2<x3<x4假设把x2放在第一个,那么往右边放的一定是连续的x1/x2,而不是先跳到x4,因为(x4-x2)*2>( (x3-x2)+(x4-x2) )于是可以看到,每次应该扔最右边的位置应该是最小值或者最大值。而且不管是最小值还是最大值,新增加的贡献都是在原来的基础上加当前最大值减最小值(当前最后一个位置嘛)假设取原创 2021-04-17 23:14:27 · 319 阅读 · 0 评论 -
1114D - Flood Fill(区间dp)
https://codeforces.com/problemset/problem/1114/D思路:dp[l,r]为区间[l,r]满足要求的最小步数ai=aj,那么可以先让[i+1,j−1]满足要求再转移过来,然后再变成和两端同色这里就是说,我提前缩点了,两端点的前一个相邻点必然不与其两端点同色,所以说不存在和dp[l+1][r-1]和当前两端点颜色同,肯定要+1的。ai!=aj 那么情况是让区间[i,j−1]满足要求再让j跟他们统一另一种是让区间[i+...原创 2021-04-05 11:21:54 · 105 阅读 · 0 评论 -
607B - Zuma(思维+区间dp)
https://codeforces.com/problemset/problem/607/B思路:n=500区间dp。开始想错了,搞成了类似枚举k的中间断点再O1判中间的回文串..(太久没碰区间dp都忘完了)dp[i][j]:i~j区间去除的最小代价。枚举断点k,dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]);有一个地方的细节,a[i]==a[j]的时候,还有一个最小的状态就是dp[l+1][r-1];因为dp[l+1][r-1]的状态不管原创 2021-04-01 23:56:40 · 111 阅读 · 0 评论 -
B. XOR-pyramid(类似杨辉三角区间dp)
https://codeforces.com/problemset/problem/983/BFor an arraybbof lengthmmwe define the functionffasf(b)={b[1]f(b[1]⊕b[2],b[2]⊕b[3],…,b[m−1]⊕b[m])ifm=1otherwise,f(b)={b[1]ifm=1f(b[1]⊕b[2],b[2]⊕b[3],…,b[m−1]⊕b[m])otherwise,where⊕⊕isbitwise...原创 2020-09-08 13:24:39 · 183 阅读 · 0 评论 -
P1880 [NOI1995]石子合并
题目描述在一个圆形操场的四周摆放NN堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出一个算法,计算出将NN堆石子合并成11堆的最小得分和最大得分。输入格式数据的第11行是正整数NN,表示有NN堆石子。第22行有NN个整数,第ii个整数a_iai表示第ii堆石子的个数。输出格式输出共22行,第11行为最小得分,第22行为最大得分。输入输出样例...原创 2020-07-21 12:16:09 · 203 阅读 · 0 评论 -
P1063 能量项链
题目描述在MarsMars星球上,每个MarsMars人都随身佩带着一串能量项链。在项链上有NN颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是MarsMars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为mm,尾标记为rr,后一颗能量珠的头标记为r,尾标记为nn,则聚合后释放的能量为m \times r \原创 2020-07-21 12:09:18 · 135 阅读 · 0 评论 -
P3147 [USACO16OPEN]262144 P
题目描述Bessie likes downloading games to play on her cell phone, even though she doesfind the small touch screen rather cumbersome to use with her large hooves.She is particularly intrigued by the current game she is playing.The game starts with a sequenc原创 2020-07-20 21:30:16 · 152 阅读 · 0 评论 -
P3146 [USACO16OPEN]248 G
题目描述Bessie likes downloading games to play on her cell phone, even though she doesfind the small touch screen rather cumbersome to use with her large hooves.She is particularly intrigued by the current game she is playing.The game starts with a sequenc原创 2020-07-20 21:26:08 · 144 阅读 · 0 评论 -
P4170 [CQOI2007]涂色
题目描述假设你有一条长度为55的木版,初始时没有涂过任何颜色。你希望把它的55个单位长度分别涂上红、绿、蓝、绿、红色,用一个长度为55的字符串表示这个目标:RGBGR。每次你可以把一段连续的木版涂成一个给定的颜色,后涂的颜色覆盖先涂的颜色。例如第一次把木版涂成RRRRR,第二次涂成RGGGR,第三次涂成RGBGR,达到目标。用尽量少的涂色次数达到目标。输入格式输入仅一行,包含一个长度为nn的字符串,即涂色目标。字符串中的每个字符都是一个大写字母,不同的字母代表不同颜...原创 2020-07-20 21:19:18 · 173 阅读 · 0 评论 -
P3847 [TJOI2007]调整队形
题目背景学校艺术节上,规定合唱队要参加比赛,各个队员的衣服颜色不能很混乱:合唱队员应排成一横排,且衣服颜色必须是左右对称的。例如:“红蓝绿蓝红”或“红蓝绿绿蓝红”都是符合的,而“红蓝绿红”或“蓝绿蓝红”就不符合要求。合唱队人数自然很多,仅现有的同学就可能会有3000个。老师希望将合唱队调整得符合要求,但想要调整尽量少,减少麻烦。以下任一动作认为是一次调整:题目描述1、在队伍左或右边加一个人(衣服颜色依要求而定);2、在队伍中任两个人中间插入一个人(衣服颜色依要求而定);3、剔掉一原创 2020-07-20 21:14:47 · 204 阅读 · 0 评论