随笔分类 - DP——区间DP
摘要:XVIII.[POI2010]OWC-Sheep 题解
阅读全文
摘要:I.[URAL1540]Battle for the Ring 这大约是我做的第一道SG函数的题( 很容易想到一个区间DP状态:设 \(f_{i,j,k}\) 表示第 \(i\) 条链子,\([j,k]\) 这一段的SG值。 于是我们枚举这一段中删掉了小于等于某个值的元素进行转移。如果删掉的值形成了
阅读全文
摘要:CXLVIII.[NOI2019] 机器人 首先发现每个点向左向右能到达的位置就类似笛卡尔树上一个点的代表区间,不同的是这里有多个最大值时选取最右的一个。于是我们可以想到一个DP,\(f_{[i,j],k}\) 表示区间 \([i,j]\) 的最大值恰为 \(k\) 或不大于 \(k\),两种设的方
阅读全文
摘要:CXXVIII.[AGC020E] Encoding Subsets 这种“压缩”题可以考虑区间DP。但是若考虑标准的区间的话它“子集”等定义又不好处理。 于是我们考虑对字符串作DP。设 \(f(S)\) 表示一个串 \(S\) 及其所有子集的压缩方案数。 显然,其有两种转移方式:一种是 \(S_0
阅读全文
摘要:CVII.[NOI2009]二叉查找树 首先该树的中序遍历是唯一可以确定的(直接按照数据值排序即可)。 然后,因为权值可以被修改成一切实数,故我们完全可以把权值离散化掉。 于是我们现在可以设置一个DP状态$f[l,r,lim]$表示: 区间$[l,r]$中的所有东西构成了一棵子树,且树中最小权值不小
阅读全文
摘要:CV.[ARC067D] Yakiniku Restaurants 明显在最优方案中,行走方式一定是从一条线段的一端走到另一端,不回头。 于是设 \(f[i,j]\) 表示从 \(i\) 走到 \(j\) 的最优代价。明显,该代价对于不同的券相互独立。故我们依次考虑每一张券。 我们发现,假设有一张位
阅读全文
摘要:CII.HDU6212 Zuma 一眼区间DP。 首先,我们将串压缩(即将相同颜色的相邻珠子合并)。记$col_i$为位置$i$的颜色,$sz_i$为位置$i$的珠子数。 我们设$f[i,j]\(表示消去区间\)[i,j]$中所有东西的最小步数。 则有: \(f[i,j]=\min\begin{ca
阅读全文
摘要:LCIII.[CERC2014]Outer space invaders 一种错误的思路是观察到一定可以构造出一种最优状态使得每次射击都发生在外星人消失的时刻,然后就将所有外星人按照消失时刻排序并设$f[i,j]$表示在第$i$个外星人消失的时刻如果你开了一炮高为(离散化后)$j$的最小费用——但很
阅读全文
摘要:LC.CF GYM100739J.Longest cheap palindrome 我们设$f[i,j,k,l,r]$表示: 当前左端取到了位置$i$,右端取到了位置$j$; 当前选择的子序列长度为$k$; 区间$[i,l],[r,j]$中所有字符都被选择时,最小要付出的代价。 转移很简单,枚举左右
阅读全文
摘要:LXXIII.[USACO19DEC]Greedy Pie Eaters P 考场上写了个暴力贪心(因为看到题面中的 greedy ……)然后光荣爆炸…… 因为$n\leq 300$,考虑区间DP。 设$f[i][j]\(表示有且只有区间\)[i,j]\(里的\)\pi$被吃完后的最大收益。 则我们
阅读全文
摘要:XLVI.CF1178F2 Long Colorful Strip 首先,每一次染色,最多把一整段连续的同色格子,分成了三段。 并且,明显我们可以把连续的同色格子,直接看作一个。 这就意味着,在这么压缩后,有$m<2n$。 这就意味着$O(m^3)$的复杂度是可以接受的。 还是考虑和前一道题一样的D
阅读全文
摘要:XLV.CF1178F1 Short Colorful Strip 考虑设$f[i,j]\(表示:假设区间\)[i,j]$里面一开始所有格子的颜色都是相同的,那么,染成目标状态共有多少种染法。 我们找到$[i,j]$中最小的那个颜色,设为$mp$。则显然,我们下一步要染上$mp$这种颜色。 设最终在
阅读全文
摘要:XLIII.CF888F Connecting Vertices 这个奇怪的限制(两条边不能有交点)让我们想到什么? 对于任何一种方案,不存在$x_0<x_1<y_0<y_1$,其中连边$(x_0,y_0),(x_1,y_1)$。 也就是说,对于任何一段区间$[i,j]$,如果里面所有点全都连通:
阅读全文
摘要:VIII.CF149D Coloring Brackets 考虑设$f[i][j][k=0/1/2][l=0/1/2]\(表示:将区间\)[i,j]$里的东西染色,左端染上颜色$k$,右端染上颜色$l$($0$为红,$1$为蓝,$2$不染)的方案数。 因为这个$n$是$700$,$n3$似乎过不了,
阅读全文
摘要:VI.[HAOI2008]玩具取名 状压一下。 我们令$f[i][j]\(为:区间\)[i,j]$的串,能转移到字母的状态(是个 bitmask ) 至于转移吗……劈开拼一起即可。 代码: #include<bits/stdc++.h> using namespace std; int m[4],n
阅读全文
摘要:IV.[SCOI2003]字符串折叠 一眼区间DP。 设$f[i][j]\(表示:将区间\)[i,j]$内的所有东西压一起的最短长度。 显然,有两种方法: 1.在中间一刀劈开,然后拼一起。 2.找到它的循环节,然后把整个串压一起。 至于找循环节吗……枚举循环节长度,然后无脑哈希一下。 注意,你可能会
阅读全文
摘要:V.[SCOI2007]压缩 这种DP状态需要考虑到各种状态的题最讨厌了…… 思路1.设$f[i][j]\(表示将区间\)[i,j]$里面所有东西压一起的最小代价 有两种转移: 砍成两段拼一起 样例里面这种方法,MaRR=aaaa 这种倍增法 然后我就写出了这样的代码: #include<bits/
阅读全文

浙公网安备 33010602011771号