CF1747E

CF1747E List Generation

给定正整数 nm,统计满足下列要求的数组 a 的长度之和:

  • a,b 长度相同等于 k
  • k2a1=0,ak=n,b1=0,bk=m
  • 1<ik,满足:aiai1 , bibi1 , 且ai+biai1+bi1
    答案对 998244353 取模.

第一步转化:考虑差分数组。

考虑长度为 k+1a,b 的差分数组,题目就转化成了:

i=1k+1ai=ni=1k+1bi=m2ik+1,(ai0bi0)=1

最后一个条件不好做,直接考虑二项式反演:钦定 i 个位置打破限制,剩下的位置随便填,前两个条件直接插板做。

k=1n+m(k+1)i=0k(1)i(ki)(n+(ki1)ki1)(m+(ki1)ki1)=k=1n+mi=0k(k+1)(1)i(ki)(n+(ki1)ki1)(m+(ki1)ki1)=i=0n+mk=in+m(k+1)(1)i(ki)(n+(ki1)ki1)(m+(ki1)ki1)

到这里先考虑枚举 ki,这样可以把后面两项搞出来。

j=0n+mi=0n+m(i+j+1)(1)i(n+j1j1)(m+j1j1)(i+ji)=j=0n+m(n+j1j1)(m+j1j1)i=0n+m(i+ji)(i+j+1)(1)i=j=0n+m(n+j1j1)(m+j1j1)k=jn+m(kj)(k+1)(1)k+j

现在的问题就在于观察后面的那个求和符号东西能否预处理或者递推处理,预处理是不可能了,考虑递推处理行不行。

f(j) 表示 k=jn+m(kj)(k+1)(1)k+j

f(j)=(j+1)(1)jk=jn+m(k+1j+1)(1)k

容易发现后面的东西,当 k 为奇数时系数均为负,否则均为正,不妨分开讨论。

g(j)=k=jn+m(k+1j+1)[kmod2=1]h(j)=k=jn+m(k+1j+1)[kmod2=0]

容易发现:g(j+1)=h(j)+h(j+1)h(j+1)=g(j)+g(j+1)

posted @   RevolutionBP  阅读(50)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示