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

C

posted @ 2021-08-09 15:07  LarsWerner  阅读(32)  评论(0)    收藏  举报