【题解】「NOIP2024模拟赛33 T3」朱雀湖

【题解】「NOIP2024模拟赛33 T3」朱雀湖

https://www.becoder.com.cn/contest/5809/problem/3


\(\mathcal{Description}\)

原题:https://contest.ucup.ac/contest/1511/problem/8211

有两个字符集为 \(k\) 的字符串:\(S,P\),满足 \(P\) 中每个字符至多出现 \(2\) 次。

定义 \(F(S,P)\) 表示:\(P\)\(S\)​​ 中互不相交的最多匹配次数。

问,所有可能的 \(F\) 的和。


\(\mathcal{Solution}\)

拜谢传奇计数王:劳郑。

\(V\)​ 表示字符集大小。

Part.1

因为 \(P\) 的内容与答案关心不大,先考虑给定 \(P\),怎么算 \(F(S,P)\) 的贡献和。

为保证方案的唯一, 我们钦定每个字串只会在第一次出现的时候算贡献(这样也恰能在满足不相交的条件下,使匹配次数最大)。

\(S\) 中与 \(P\) 匹配的位置是 \(i\),那么其产生的贡献为:\(V^{n-m}\)。同时这个子串,产生重复贡献当且仅当:存在一个匹配位置 \(j\) 使得:\(j>i-m\),即有重叠部分(border)因为我们钦定了 \(i\) 这里必须算贡献,那么就要减去 \(j\) 处的贡献,同时还要加上 \(j\) 以前删去的多余贡献……那就是容斥。具体的:

因为题目保证每个字符出现次数不能超过 \(2\) 次,那么 border 长度不会超过 \(\lfloor\frac n2\rfloor\),也就是说 \(S\) 中的每个位置至多被两个能够匹配的字串覆盖。这样容斥变得容易了,答案即为:

\[Ans=\sum_{j=1}^{\lfloor\frac m2\rfloor}\sum_{i=m}^n\sum_{k=0}^{i-m-k(m-j)\ge 0}(-1)^kg(j)V^{i-m-k(m-j)}V^{n-i}+\Delta \]

其中:

  • \(j\) 为 border 长度;
  • \(i\)\(P\)\(S\) 中的匹配位置;
  • \(k\) 为从 \(i\) 往前跟 \(P\) 匹配且与 \(i\)​​ 直接或间接重叠的个数;
  • \(g(j)\)\(P\) 具有长度为 \(j\) 的 border 的方案数;
  • \(\Delta=g(0)(n-m+1)V^{n-m}\) 为 border \(=0\) 时的贡献。

直接求解较松的上界是 \(O(n^2\ln n)\)

注意到 \(i\) 的取值实际上关系不大:(不看式子,的确确定匹配某一位置之后剩下的方案数也应该是定值

\[\begin{aligned} Ans&=\left(\sum_{j=1}^{\lfloor\frac m2\rfloor}g(j)\sum_{k=0}^{m+k(m-j)\le n}(-1)^kV^{n-m-k(m-j)}\sum_{i=m+k(m-j)}^{n}1\right)+\Delta\\ &=\left(\sum_{j=1}^{\lfloor\frac m2\rfloor}g(j)\sum_{k=0}^{m+k(m-j)\le n}(-1)^kV^{n-m-k(m-j)}(n-(m+k(m-j))+1)\right)+\Delta \end{aligned} \]

调和级数,所以时间复杂度为 \(O(n\ln n)\)


Part.2

现在考虑求解 \(g(j)\)

枚举中间部分出现两次的字符个数 \(i\),容易拿出:

\[g(j)={V\choose j}j!\sum_{i=0}^{\lfloor\frac {m-2j}2\rfloor}{V-j\choose i}{V-j-i\choose m-2j-2i}(m-2j)!\dfrac 1{2^i} \]

注意,\(g(0)\) 不能直接按照上式来计算,因为没有两边 border 的限制中间的部分就不能乱填了,如果乱填了可能就出现 border 了。所以按照上式算完 \(g(0)\) 后还要减去 \(\displaystyle\sum_{i=1}^{\lfloor\frac m2\rfloor} g(i)\)

暴力算组合数复杂度为 \(O(m^3)\)。注意到每个组合数上项至多有 \(O(m)\) 种取值,预处理一下可以在 \(O(m^2)\) 求出 \(g(j)\)​。


\(\mathcal {Summay}\)

考场上总体的思路是想到了的,Part.2 也推出来了,但是 Part.1 一直在想 dp 怎么做。还是容斥等计数手段掌握不熟练。

posted @ 2024-11-23 18:01  CloudWings  阅读(22)  评论(3编辑  收藏  举报