
最近都什么逆天模拟赛,这把 MO 高联二试构造都出出来了,报复社会吗这是 .
Unknowinds
Jocelyn 是一个喜欢玩游戏的女孩子,她正在玩一款全新上架的游戏 Free Unknowinds Passing,具体玩法如下:
游戏整体由一个向右向上无限延伸的棋盘组成,游戏开始时,Jocelyn 会出生在棋盘的左下角 (0,0)。
Jocelyn 持有一个长度为 m 的序列 {Sm},初始 S 为 1,2,3,⋯,w。Jocelyn 需要从 (0,0) 走到 (w−m,w+m),他每次只会向右走一步或者向上走一步。
当到达终点的时候,他会选择一个新的序列 S′⊆S,并且回到 (0,0) 重新开始一轮游戏。特别的,如果她已经进行了 n 轮游戏,则她会退出游戏,不再进行游玩。
Jocelyn 是一个喜欢计数的女孩子,所以她想知道合法的操作方案的数量,两种方案本质不同当且仅当存在一轮游戏选择的序列不同,或者存在一步走的方向不一样。因为答案太大,所以只需要输出对 109+7 取模后的值即可。
1≤n,w≤2×106。
一些报复社会的东西还是不要放了吧 .
考虑朴素 DP 即可得到答案的递推式:
S(n,r)=r∑k=0(rk)(2ww−k)S(n−2,i)
断言:答案等于:
S(n,r)=(w+rr)−1r∑k=−r(−1)k(w+rr+k)(w+rw+k)(2ww+k)n−2
证明:
考虑证明如上答案满足递推 .
引理:(a+ba+k)(a+bb+k)=a−k∑i=0(a+b)!i!(i+2k)!(a−k−i)!(b−k−i)! .
关于证明,考察 RHS=(a+b)!(2k)!(a−k)!(b−k)!F(k−a,k−b2k+1∣∣∣1)=(a+ba+k)(a+bb+k) 即得,最后一步是 z=1 时高斯超几何级数的计算公式 .
令 F(r,n,k)=(w+rr+k)(w+rw+k)(2ww+k)n−2,则可以得到朴素的递推:
F(r,k)=(w+rr+k)(w+rw+k)F(w,k−2)
同时,又可以用 F 表出 S(n,r),结合刚刚得到的递推以及 Lemma,可得:
S(n,r)=r∑k=−rr−k∑i=0(−1)kF(w,k)r!w!i!(i+2k)!(r−k−i)!(w−k−i)!=r∑l=0r!w!(r−l)!(w−l)!l∑k=−l(−1)kF(w,n−2,k)(l−k)!(l+k)!(l=i+k)=w∑k=0(wk)(2ww−k)S(n−2,i)
注:对于最后一个等号,考虑
F(w,n,k)=(l−k)!(l+k)!(2w)!(w+l)!(w+l)!F(l,n+1,k)
由此,命题获证 .
那么直接计算就可以了,时间复杂度 Θ(wlogn),可以通过 .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2022-07-22 2022 暑假 accoders 比赛题解