[ARC160D] Mahjong 题解

若 m≢0(modk)m \not\equiv 0 \pmod k,无解。

考虑将操作二个数限制为 <k< k,否则可转化为几次操作一和 ≤k\le k 次操作二,那么一个操作集合唯一对应一种最终序列,于是对操作集合进行计数即可。

记序列 b1∼n−k+1b_{1\sim n-k+1} 为每个点作为二操作开头加了几次,记 bn−k+2∼2n−k+1b_{n-k+2\sim 2n-k+1} 中 bib_i 为点 i−(n−k+1)i-(n-k+1) 用了几次操作一那么计数 bb 序列即可。

需要满足以下条件:

  • ∀i∈[1,n−k+1],bi<k\forall i\in[1,n-k+1],b_i<k
  • ∑i=12n−k+1bi=mk\sum\limits_{i=1}^{2n-k+1}b_i=\frac{m}{k}

带限制,考虑容斥,钦定前 n−k+1n-k+1 个元素中至少有 ii 个不合法,则计数和为 mk−ik\frac{m}{k}-ik 的 bb 序列即可,由插板法得:

ans=∑i=0n−k+1(−1)i(n−k+1i)(mk−ik+2n−k2n−k)ans=\sum_{i=0}^{n-k+1}(-1)^{i} \begin{pmatrix}n-k+1\\i\end{pmatrix}\begin{pmatrix}\frac{m}{k}-ik+2n-k\\2n-k\end{pmatrix}

时间复杂度 O(n2log⁡mod)\mathcal O(n^2\log mod)。

posted @ 2023-05-17 13:33  蒟蒻orz  阅读(30)  评论(0)    收藏  举报  来源