[题解] LuoguP5401 [CTS2019]珍珠
Posted wxq1229
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[题解] LuoguP5401 [CTS2019]珍珠相关的知识,希望对你有一定的参考价值。
https://www.luogu.com.cn/problem/P5401
对于一个合法的方案,令(c_i)表示颜色(i)出现的次数则有
(sumlimits_{i=1}^D lfloor c_i / 2 floor ge m)
(sumlimits_{i=1}^{D} (c_i - c_i mod 2) / 2 ge m)
最后可以得到
(n - sumlimits_{i=1}^D c_i mod 2 ge 2m)
即 (sumlimits_{i=1}^D c_i mod 2 le n - 2m)
枚举左边的值,累加答案。
令(f_k)表示(sumlimits_{i=1}^D c_i mod 2 = k)的方案数
恰好等于(k),一个套路的想法:设(g_k)表示钦定(k)个(c mod 2 = 1)后,其余随意的方案数
枚举最后有(i)个(c)为奇数,由于有之前的钦定,这些方案会被重复计数(inom{i}{k})次
所以(g_k = sumlimits_{i=k}^{D} inom{i}{k} f_i)
根据二项式反演
其中
算出(g)过后卷积就好了。
问题变为如何算(g)
先是(g_k = inom{D}{k} X_k)
(X_k)即为(c_1 cdots c_k)为奇数,(c_{k+1}...c_{D})随意的方案数。
注意到(n)个变量有标号,最后将两部分合并乘起来的时候会有一个组合数。
构造(c_1,c_2,cdots ,c_k)的EGF,即(langle0,1,0,1,cdots angle)这个序列的的指数级生成函数,为(frac{e^x - e^{-x}}{2}),那么这一部分的EGF即为(left(frac{e^{x} - e^{-x}}{2} ight)^k)
后(D-k)个(c)的EGF就是(e^{x(D-k)})
那么
(X_k = n![x^n]left[ left( frac{e^x-e^{-x}}{2} ight)^k e^{x(D-k)} ight]=frac{n!}{2^k}[x^n]left[ left( e^x-e^{-x} ight)^k e^{x(D-k)} ight])
(n)那么大咋阶乘呢......继续往下推
二项式定理暴力展开后面那坨
于是
乘上去,(n!)果不其然的蒸发了
我们甚至也把(k!)搞掉了尽管没什么用
标准的卷积(
卷出(g)再卷到(f)就好了
注意特判一下(n - 2m ge D)时答案为(D^n),(n - 2m < 0)时答案为(0)。
代码: https://paste.ubuntu.com/p/DPtMCrGR6P/
copy了之前多项式的板子,没删干净,显得丑陋而冗长 /kk
以上是关于[题解] LuoguP5401 [CTS2019]珍珠的主要内容,如果未能解决你的问题,请参考以下文章