这个组合意义着实是 nb(
戴项式太强了!___ ___ ___ ___!(
设 bi=ci+i。
考虑一个子序列 {t1,t2,…,tk}⊆U,U=[1,n]∩Z,则其权值为 k∏i=1[bti−(ti−i)]
对于其展开式中的一项(将一个 ti−i 视为一个整体),考虑我们在每个括号中选择的 −(ti−i) 项,设选择的 bti 项为 S⊆{t1,t2,…,tk},有一个 nb 的组合意义:
考虑一个映射 f:T→T,其中 T=∁US,钦定不在子序列内的位置映射到其自身,对于 i∈S 钦定 i 映射到前 ti−i 个不在子序列内的位置之一。
这样在方案数上显然是相等的。但是有什么更有趣的意义呢?
若按照每个元素通过这个映射得到的值划分成若干个集合,不难验证映射与集合其实是一一对应的。
于是正解就有了。
考虑直接枚举 S,然后考虑 T 中的贡献。
就是将 T 划分为集合的方案数,不过这个方案数应该是 |T|∑i=1(−1)|T|−i{|T|i}=(−1)|T||T|∑i=1(−1)−i{|T|i}=(−1)|T||T|∑i=1(−1)i{|T|i}
然后通过类似贝尔数的简单推导,可以发现后面那个式子的 EGF 就是 exp(1−ex)。
算出来这个之后,实际上的做法是枚举 T 的大小,计算所有 S 的贡献和(这可以简单地分治 NTT 解决),然后乘上 T 的贡献。
代码:
1 |
|