Solution Set - 杭电多校 2022 Day6 一句话题解
A:设 \(f_{i,j,k}\) 表示 \(i\) 位置被除了 \(j\) 次,乘了 \(k\) 次的方案数,注意到乘到 \(m\) 之后的序列元素都必须要乘一遍,可以考虑将这方面的贡献延后考虑一下。
设 \(g_{i,j}\) 为 \(i\) 个数除了 \(j\) 次之后后面的最小操作步数,这个东西可以倒过来转移,考虑当前除了多少次与上一个为多少。
转移 \(f\) 的时候要将所有合法状态转移用双指针转移出来,做到 \(O(n\log^2m)\)。
B:请看官方题解。
C:考虑将节点编号倒序,设计 DP,\(f_{i,j}\) 表示从城市 \(n-1\) 到城市 \(j\) 经过道路为 \(i\) 的路径数量,有转移式:
\[f_{i,j}=(j+1)f_{i-1,j+1}+\sum_{k=0}^{j-1} f_{i-1,k}a_{j-k}
\]
考虑生成函数,设 \(F_i(x)\) 表示 \(f_{i}\) 的生成函数 \(g(x)\) 表示 \(a_i\) 的生成函数,则:
\[F_i(x)=F_{i-1}'(x)+F_{i-1}(x)g(x)
\]
暴力递推仍然不可过,考虑到:
\[(A(x)e^{f(x)})'=e^{f(x)}(A(x)+A'(x)f'(x))
\]
设 \(G_i(x)=F_i(x)e^{\int g(x) \mathrm{d}x}\),则:
\[G_i(x)=e^{\int g(x) \mathrm{d}x}(F_{i-1}'(x)+F_{i-1}(x)g(x))=G_{i-1}'(x)
\]
所以 \(F_k(x)=\frac{G_0^{(k)}(x)}{e^{\int g(x) \mathrm{d}x}}\),计算即可。
G:将 \(a^x\) 插入哈希表再一个个查就行了。
H:线段树上走左走右是可以预处理出来的,接下来就是在线段树上走的过程。
K:答案是 \(\frac{\sum_{d|n}\varphi(d)\gcd(m,d)m^{n/d}}{nm}\)

浙公网安备 33010602011771号