2024.7.28 闲话

歌:またおいで - さうざんど feat. 可不 .

点击输入文字

一个仅含 ( ) ? 的字符串是好的当且仅当可以把每个 ? 替换为 () 使得最终形成一个匹配的括号串 .

对于固定的 n 对于每个 k 计算长为 2nk? 的好串个数,对 109+3579 取模 .

将问题看成一个格路计数的问题:从 (0,0) 出发遇到一个 ( 就走 (1,1),遇到一个 ) 就走 (1,1),遇到一个 ? 可以选择走 (1,1)(1,1),需要走到 (n,0) 且时刻不进入 x 轴下方 .

容易发现若决策 ? 后若最终能走到的最低点为 (n,m1)、最高点为 (n,m2),则最终能到达的点一定形如 (n,m1+2i),其中 i[0,m2m12] 间的整数 .

令生成函数:

D(x,y,s,t)=wsnondet(w)t|w|xmin(w)ymax(w)

其中 w 是任意一个括号串,nondet(w)w? 的个数,min(w),max(w) 分别是决策 ? 后若最终能走到的最低点和最高点的纵坐标 . 则欲求即为 [skt2n]D(0,1,s,t) .

首先容易得到方程:

D(x,y,s,t)=1+t(x1y1+xy+sx1y)(D(x,y,s,t)D(0,y,s,t))+t(xy1+(1+s)xy)(D(0,y,s,t)D(0,0,s,t))+t(1+t)xyD(0,0,s,t)

K(x,y)=xy(1t(x1y1+xy+sy1x)),则原式可以简化为:

K(x,y)D(x,y,s,t)=xy+t(x21)(sy2+1)D(0,y,t)tx2D(0,0,t)

为了求解,考察函数 X,Y 满足 K(1,Y(t))=K(X(y,t),y)=0(可以简单解出).

在原式中代入 x=1

K(1,y)D(1,y,s,t)=ytD(0,0,s,t)

此时令 y=Y(t) 让等号左侧变成 0,即可得出 D(0,0,s,t) 的值,进而可以知道 D(1,y,s,t) 的值:

D(0,0,s,t)=Y(t)tD(1,y,s,t)=yY(t)K(1,y)

类似的,可以得到 D(0,y,s,t) 的封闭形式,进而可以组合出 D 的封闭形式:

D(x,y,s,t)=(xX(y,t))(yxY(t)X(y,t)Y(t)+xyX(y,t))(1X(y,t2))K(x,y)

代入 x=0,y=1 并仔细地展开整理可以得到答案的生成函数:

后面看 joke3579 的吧(

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