abc266G 题解
能评到空心黄是不是只是因为位置原因啊。
真心只有 *1800 左右罢。
题意:对满足以下要求的序列计数:
- 由
R
,G
,B
组成,其中恰 \(R\) 个R
,\(G\) 个G
,\(B\) 个B
。 - 连续的
RG
作为子串恰出现 \(K\) 次” 。 - 膜 \(998244353\) 输出。
这里的连续 RG
好突兀啊,能不能直接枚举?
但是恰好怎么做,反演还是容斥?
先想想钦定 \(k\) 个 RG
怎么做罢:把 RG
和 B
分别看成分隔符,然后试着往里插剩余 R
,G
。
令 \(n=R-K,m=G-K,k=C+K\),则我们要统计 \(n\) 个 R
\(m\) 个 G
分成 \(k+1\) 段的方案数。无重复自然最好,有重复再想方法。
不能形成连续 RG
,一个被分隔符分隔的区间必须是前面一段 R
连后面一段 G
的形式。
那么,只要知道一个区间内 R
和 G
的个数,就能唯一确定区间的排列方式。
对 R
和 G
分别计算,这不就是一个小组合问题。
这时看回要求,开头的 R
显然不会参与与分隔符凑成 RG
,等等结尾的 G
好像也不会?
每个符合要求的序列忽略分隔符排列后都能唯一对应到 R
和 G
分配到不同区间的个数,而后者一定合法,那么前后一一对应,直接计不就完了!
分隔符有 \(\binom{k}{C}\) 种排法,R
有 \(\binom{n+k}{k}\) 种排法,G
有 \(\binom{m+k}{k}\) 种排法,乘一起就是答案。
代码不给了,很好写。注意组合数预处理要处理两倍数据范围。
事实上,前面那句“先想想钦定 \(k\) 个 RG
怎么做”的缘由是我开始往二项式反演想了一段。
本文来自博客园,作者:purplevine,转载请注明原文链接:https://www.cnblogs.com/purplevine/p/16829853.html