观前提示
本题解仅提供一个理论复杂度正确的解法,因为本题模数为 109+7,没有优秀 MTT 板子的我被卡常了。
正文部分
不妨设 Sn,m=∑n−1i=0im,答案就是 Sn+1,k。
再设:
F(x)=∑i≥0fixi=∑i≥0Sn,mxii!=∑i≥0n−1∑j=0(jx)ii!=n−1∑j=0∑i≥0(jx)ii!=n−1∑i=0eix=enx−1ex−1=xex−1⋅enx−1x
继续设:
G(x)=∑i≥0gixii!=xex−1F(x)=G(x)⋅enx−1x=(∑i≥0gixii!)⋅(∑i≥1nixi−1i!)=(∑i≥0gixii!)⋅(∑i≥0ni+1xi(i+1)!)Sn,m=m!fm=m!m∑i=0gii!⋅nm−i+1(m−i+1)!=1m+1m∑i=0(m+1i)ginm−i+1
又有 G(x)=xex−1=(ex−1x)−1=(∑i≥0xi(i+1)!)−1,用 MTT 求逆即可在 O(klogk) 的时间复杂度内得到 gi,进而求出 Sn+1,k。
关于 G(x)
把 gi 求出来后,一个不搞 OI 的同学一眼认出这个数列就是伯努利数。
所以 G(x) 即为伯努利数的 EGF,上面的解法也是 O(nlogn) 求伯努利数的方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现