【题解】Solution Set - NOIP2024集训Day24 DP常⻅模型3「区间」

【题解】Solution Set - NOIP2024集训Day24 DP常⻅模型3「区间」

https://www.becoder.com.cn/contest/5511


「CF1572C」Paint

一个结论:钦定一个区间最终变成的颜色为这个区间的右端点颜色,是不劣的。(纯感觉出来的😅

Why?(写完之后又想了想

考虑数学归纳。

显然结论对于区间长度为 1 的成立。

对于 [l,r] 如果结论成立,我们在 r+1 加入一个新颜色 aj

如果:

  1. aj1=aj[l,r+1] 肯定等于 [l,r] 的最优解。
  2. aj1jj,因为 [l,r] 变成右端点是最优的,我们与其把 aj 变成 aj1,不如直接把 [l,r] 花费一次变成 aj

fi,j:区间 [i,j] 变成 aj 颜色的答案。

暴力枚举断点还是 O(n3) 的。

我们把 aj 的所有位置拿出来,如果断点处于两个 aj 之间,其实是不优于断点取在其中一个 aj 上的。(因为我们显然把更多的无关元素堆在一起是更容易出最优解的。

又因为为每个元素出现次数不会超过 20,这样我们每次转移就是 O(20) 的了。


「ABC219H」Candles

「BalticOI 2009 Day1」甲虫 这道题是类似的,不同的是现在这道题算是加强版,每个位置的初始值由定值变成了变量。

但其实感觉本质是一样的。

用同样的做法,枚举有多少蜡烛是对答案产生贡献的,算减少的最少量。

但是实际上这是错的:WA 74pts

因为这里每个地方的蜡烛并不是等价的,对于一段区间我们可能并不会把她们全部选完。

Hack:

3
1 5
5 1
10 20

(这里的 5 1 就不会取,答案应该是 14


解决办法是,我们不枚举,而直接放在状态里面去 dp,这样就可以考虑到区间内有些没有贡献的点了。

具体的,我们定义 fi,j,k,0/1 表示熄灭区间 [i,j] 之后,还有 k 个蜡烛会对答案产生正向贡献,最后停在左边。右边。


「HAOI2016」字符合并

fi,j,s:区间 [i,j],缩成了 s 的最优解。(s[0,2k1]

状态数就已经了 107 了,发现转移需要 O(n),GG 了。

想办法换一个更好的状态定义。

12min passed...

确实没有想到什么更好好刻画状态的定义方式了。


???状态定义就是这个?那我再想想转移。

哦!

有点愚蠢,填表法肯定可以做(但是我觉得不是很好想,之前还在想枚举断点来着😅),下面考虑刷表法。

我们钦定每次 s 的长度大于等于 k 之后就一定会合并起来(如果不合并的话,这种方案一定会被其她的 dp 算到。

[l,r,s][l,r+1,s+c]c 是原串 r+1 位的值。现在就是 O(1) 转移了。

emmmmmm,我就说不对啊,肯定还是得枚举断点的,不然会 WA 5pts

Hack x1:

4 2
1010
1 4
0 3
0 10
1 5

(算 f1,4, 的时候要从 f1,2,0f3,4,0 转移过来。


不行了,看题解去了。

???

枚举组成当前 st 末位的区间 [l,j],发现只有区间长度为 1,k,2k1 的合法,所以每次减 k1,于是时间复杂度:O(n2nk12k1)

md,这不就是我一开始想的吗???什么精细实现。😥

算了一下确实好像不会超过 5×108


「AGC062B」Split and Insert

我们重编号一下,可以变成初始任意排列,最后要求升序。

fi,j,k:在前 k 次操作内将 [i,j] 变成升序的最优解。

有转移:

fi,j,k=minl=ij1(fi,j,k1,fi,l,k1+fl+1,j,k1+(jl)×ck)

然后 O(n3k) 做完了?nb,这都有紫。


好像一开始是那个转化不太行。

问题不大,我们直接把 ci reverse 一下也是同样的效果。


哦有点道理,我们 fi,j,k 中的 [i,j] 不能表示下标,而应该是值域。

这样算出来的贡献才是准确的。


「Gym 102798K」Tree Tweaking

我们对所有的区间取并集。

depi=sizi

一点思路没有。


https://www.cnblogs.com/rainybunny/p/15164792.html

注意:这里较平常的笛卡尔树,是把「下标」和「值」交换了的。所以是「值」二叉搜索树,「下标」堆(其实这样才正好是题目的要求。

我们算的就是最小子树大小之和。


「AGC028D」Chords

圆上的两条连边相交当且仅当,这两条线的区间有交且不存在包含关系。


https://www.luogu.com.cn/article/gh1j0wpp

posted @   CloudWings  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示