2023.2.14
vp:Codeforces Round 848
CF1778D. Flexible String Revisit
记 \(f_i\) 表示序列中有 \(i\) 个位置不同的期望操作次数,朴素的转移方程是显然的:
\[f_i=\frac{i}{n}f_{i-1}+\frac{n-i}{n}f_{i+1}+1
\]
这个转移方程是带环的,一种解决方式是 环上高斯消元 ,但这题有更为简洁的做法。将等式左边的 \(f_i\) 系数拆一下:
\[\frac{i}{n}(f_i-f_{i-1})=\frac{n-i}{n}(f_{i+1}-f_i)+1
\]
记 \(f\) 的差分数组为 \(g\) ,即 \(g_i=f_i-f_{i-1}\) ,代入得:
\[g_i=\frac{\left( (n-i)g_{i+1}+n\right)}{i}
\]
由于 \(f_0=0\) ,因此我们只要递推出 \(g\) 数组就可以很方便的求解 \(f\) 。
由于 \(g_n=f_n-f_{n-1}=1\) ,因此直接从后往前递推 \(g\) ,再从前往后递推 \(f\) 即可。
P4103 大工程
虚树的模板题,复习了一手虚树。
ABC289G - Shopping in AtCoder store
按照 \(b\) 从大到小排序,稍微转化一下式子就是 \(f_{i}=i\cdot c_j+i\cdot b_i\) ,一个明显的斜率式,用李超树维护一下就行。
ABC288F - Teleporter Takahash
需要发现一些性质的题目,考虑连续用相邻两个点对称,可以到达的点就是其四个方向上走两步得到的点。分类讨论一下就完了。
P4717 【模板】快速莫比乌斯/沃尔什变换 (FMT/FWT)
学习新算法。详见 快速沃尔什变换学习笔记 。

浙公网安备 33010602011771号