link。
在最后加一个空座位,将序列拆分成 “若干非空座位 + 一个空座位” 这样的段,一共会有 n+1−m 个段。
记 fn 表示 n 个人最后坐到一起的方案数,记 F(x) 为 {fn} 对应的 EGF,则答案为 m![xm]Fn+1−m(x)。
考虑最后一个人坐的位置,容易得到如下递推式:
fn=(n+1)n∑i=1(n−1i−1)fi−1fn−ifn(n−1)!xn−1=(n+1)n∑i=1fi−1(i−1)!xi−1fn−i(n−i)!xn−i
将 n+1 拆成 (i−1)+(n−i)+2,得到微分方程 F′=2F2+2xFF′。
解该方程,得 F=exp(2xF)。
如果记 T(x) 是有根树的 EGF(即 T/expT=x),事实上还有 F(x)=T(2x)/2x。
求各位神仙给个双射构造。
现在代回,得:
m![xm]Fn+1−m(x)=m2x)n+1−m=m!12n+1−m[xn+1]Tn+1−m(2x)=m!2m[xn+1]Tn+1−m(x)
求 [xn]Tk 是个经典问题,利用拉格朗日反演易知它为 kn×nn−k(n−k)!。
所以最终答案为 n+1−mn+1×(2(n+1))m。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现