Live2D

Solution -「LOCAL」菜

Description

  Private link.

  给定 N,L,X,Y,K,求选出 0a1a2aN1X<YaNL,使得 i=1N1ai>aN,且不存在某个 ta1..N 中出现超过 K 次的方案数。答案对 (109+7) 取模。

  N8,其他 109

Solution

  我走起来就是一个二元 GF:

=i=0X1yK+1xi(K+1)1yxi.

止步于此,大脑空空。惨痛地,我们认识到,尽量不要为了在“描述”时偷懒,毫无顾忌地引入二元。

  先从 K 次入手,为方便描述集合划分,钦定 a1..N 乱序排列。那么,设某个值出现了 t 次,就应当有描述其方案数贡献的 EGF 中,[zt]G(t)=[tK]t!1t!=[tK]。我们可以 O(partition(N)) 枚举出现次数集合,却很难保证不同集合对应的值确实不同。为此,考虑一个被钦定大小为 t 的集合的容斥因子贡献,设其 EGF 为 F(z),就有 G=expFF=lnG[zt]F(z) 就是该集合的容斥系数。

  接着描述选出前 N1 个数的过程。枚举 n1 的划分 c1..m,有

M(z)=i=1m1zci(X+1)1zci.

对于 s=i=1N1(Y,L],其对应 aN 的方案数为 sY。这一部分的和为

s=Y+1L(iY)[zi]M(z)=([zL][zY])(z1zM(z)Y1zM(z)).

用 EI 求 [zn]P(z)/Q(z) 的科技(就是常系数齐次线性递推那个)可以算出来。对于 s>L,其贡献为

([z][zL])11zM(z).

z1 洛一洛就能算前一项,后一项和前面类似。复杂度大概是 O(partition(n)polylog(n)logL)

Code

  呜……不想写。

  所以上面的式子可能都是错的,诶嘿。(

posted @   Rainybunny  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2021-05-30 Solution -「UR #21」「UOJ #632」挑战最大团
点击右上角即可分享
微信分享提示