ZR模拟赛6
http://zhengruioi.com/contest/947
上大分。
A
比较简单,直接贪心一下即可。
http://zhengruioi.com/submission/338445
B
考虑枚举这个哈密尔顿回路的 \(p\),发现这个排列有几个要求
- \(p_i\) 与 \(p_{i+1}\) 有边(概率为 \(p^n\))。
- 发现对于 \(p_i,p_{i+1},p_j\)(\(i+1<j\)),若 \(p_{i+1}>p_j\) 且 \(i,j\) 有边,则必然不行(概率为 \((1-p)^{\tau(p)}\))。
- \(p_2<p_n\)。
考虑枚举 \(p_2,p_n\),设 \(f_j\) 表示满足 \(\tau(p)=j\) 的长度为 \(n-3\) 的排列数,真正计算逆序对的时候需要加上 \(x,y\) 的贡献,则有
\[ans=\sum_{x<y} p^n(1-p)^{n-2+x-y}a_xa_y \sum_j (1-p)^{j}f_j
\]
考虑 \(f_j\) 的生成函数 \(F_n(x)=\frac{\prod (1-x^i)}{(1-x)^n}\),发现后半式子是可以 \(O(n)\) 求得的。前半部分改为枚举 \(y-x\),然后用差卷积求出满足 \(y-x=d\) 的 \(\sum a_xa_y\) 即可。
以上是考场推的。
考后发现,可以对于每个 \(x\) 动态维护一下 \(\sum a_yp^{x-y}\),然后就没了。
http://zhengruioi.com/submission/338801

浙公网安备 33010602011771号