P4548
首先这个东西肯定是在 tire 图上期望 DP。
只考虑前缀,考虑设 \(f_i\) 表示第一次跳到 \(i\) 的期望时间,\(g_i\) 为从 \(i\) 跳到前面再跳回 \(i\) 的期望时间,\(h_j\) 为从 \(j\) 跳到当前 \(i\) 的期望时间。
推导可得 \(f_{i+1}=f_i+(m-1)g_i+1,g_i=\frac{\sum_{j\neq s_{i+1}}(h_{nxt_{i,j}}+1)}{m-1}\)。
考虑 \(i\) 变成 \(i+1\) 时 \(h_j\) 的变化,容易发现此时只有 \(i\) 能跳到 \(i+1\),推导可得 \(\forall j\le i,h_j\leftarrow h_j+(m-1)g_i+1\)。
但是这个做法涉及到除法,不能处理模数为质数的情况。于是考虑设 \(p_i=(m-1)g_i\),则 DP 变为:
-
\(f_{i+1}=f_i+p_i+1\)
-
\(p_i=\sum_{j\neq s_{i+1}}(h_{nxt_{i,j}}+1)\)
-
\(\forall j\le i,h_j\leftarrow h_j+p_i+1\)
使用数据结构优化即可做到 \(O(n\log n)\)。
感觉再仔细刻画一下这个 DP 可能能推出正解?