2023.7.28 闲话
CF1845D Rating System
注意到一个 \(k\) 的影响相当于将一段区间内的贡献全部消除,对于任意一段区间,都可以构造出对应的 \(k\) 使得消的贡献包含对应区间,因为选不满一定不优,所以找最小子段和是正确的 .
时间复杂度 \(\Theta(n)\) .
CF1843F Omsk Metro
因为点权只有 \(1\) 和 \(-1\) 所以对于最大子段和和最小子段和它们中间必然都是可以作为一个子段和的,于是只需要维护最大子段和和最小子段和即可 .
时间复杂度 \(O(n\log n)\) .
CF1841C Ranom Numbers
大力 DP 虽然可以,但是注意到每个字符只有修改第一个或最后一个可能成为最优答案,暴力修改后模拟即可 .
时间复杂度 \(\Theta(nc^2)\),其中 \(c\) 是字符集大小 .
CF650D Zip-line
会写的 .
CTSC2006 歌唱王国
为什么我要做这个题啊 . 令 \(F(z)\) 表示结束时字符串长度的 PGF,\(G(z)\) 表示未结束时字符串长度的 PGF,那么答案就是 \(F'(z)\) .
在 \(G\) 后面加一位可以导出 \(1+zG(z)=G(z)+F(z)\) .
两边同时求导可以得到 \(zG'(z)+G(z)=G'(z)+F'(z)\),代入 \(z=1\) 可以得到 \(F'(1)=G(1)\) .
对于酋长的名字 \(A\),在 \(G\) 后面加一个 \(A\) 可以导出:
\[\left(\dfrac zn\right)^mG(z)=\sum_{i=1}^m[A[1:i]=A[n-i+1:n]]F(z)\left(\dfrac zn\right)^{m-i}
\]
注意如果是 border 就选不满了 . 贺一个 gtm1514 贺过的图:
那么代入 \(z=1\) 后可以得到:
\[G(1)=\sum_{i=1}^m[A[1:i]=A[n-i+1:n]]n^i
\]
直接做就行了,时间复杂度 \(\Theta(m)\) .
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/17521374.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ