Solution -「LOCAL」菜
\(\mathscr{Description}\)
给定 \(N,L,X,Y,K\),求选出 \(0\le a_1\le a_2\le\cdots a_{N-1}\le X<Y\le a_N\le L\),使得 \(\sum_{i=1}^{N-1}a_i>a_N\),且不存在某个 \(t\) 在 \(a_{1..N}\) 中出现超过 \(K\) 次的方案数。答案对 \((10^9+7)\) 取模。
\(N\le8\),其他 \(\le10^9\)。
\(\mathscr{Solution}\)
我走起来就是一个二元 GF:
止步于此,大脑空空。惨痛地,我们认识到,尽量不要为了在“描述”时偷懒,毫无顾忌地引入二元。
先从 \(K\) 次入手,为方便描述集合划分,钦定 \(a_{1..N}\) 乱序排列。那么,设某个值出现了 \(t\) 次,就应当有描述其方案数贡献的 EGF 中,\([z^t]G(t)=[t\le K]t!\cdot\frac{1}{t!}=[t\le K]\)。我们可以 \(\mathcal O(\operatorname{partition}(N))\) 枚举出现次数集合,却很难保证不同集合对应的值确实不同。为此,考虑一个被钦定大小为 \(t\) 的集合的容斥因子贡献,设其 EGF 为 \(F(z)\),就有 \(G=\exp F\Rightarrow F=\ln G\),\([z^t]F(z)\) 就是该集合的容斥系数。
接着描述选出前 \(N-1\) 个数的过程。枚举 \(n-1\) 的划分 \(c_{1..m}\),有
对于 \(s=\sum_{i=1}^{N-1}\in (Y,L]\),其对应 \(a_N\) 的方案数为 \(s-Y\)。这一部分的和为
用 EI 求 \([z^n]P(z)/Q(z)\) 的科技(就是常系数齐次线性递推那个)可以算出来。对于 \(s>L\),其贡献为
令 \(z\rightarrow 1\) 洛一洛就能算前一项,后一项和前面类似。复杂度大概是 \(\mathcal O(\operatorname{partition}(n)\operatorname{polylog}(n)\log L)\)。
\(\mathscr{Code}\)
呜……不想写。
所以上面的式子可能都是错的,诶嘿。(