2024.7.28 闲话
歌:またおいで - さうざんど feat. 可不 .
一个仅含 \(\texttt{( ) ?}\) 的字符串是好的当且仅当可以把每个 \(\texttt?\) 替换为 \(\texttt(\) 或 \(\texttt)\) 使得最终形成一个匹配的括号串 .
对于固定的 \(n\) 对于每个 \(k\) 计算长为 \(2n\) 含 \(k\) 个
?
的好串个数,对 \(10^9+3579\) 取模 .
将问题看成一个格路计数的问题:从 \((0,0)\) 出发遇到一个 (
就走 \((1,1)\),遇到一个 )
就走 \((1,-1)\),遇到一个 ?
可以选择走 \((1,1)\) 或 \((1,-1)\),需要走到 \((n,0)\) 且时刻不进入 \(x\) 轴下方 .
容易发现若决策 ?
后若最终能走到的最低点为 \((n,m_1)\),最高点为 \((n,m_2)\),则最终能到达的点一定形如 \((n,m_1+2i)\),其中 \(i\) 是 \([0,\frac{m_2-m_1}2]\) 间的整数 .
令生成函数:
其中 \(w\) 是任意一个括号串,\(\operatorname{nondet}(w)\) 是 \(w\) 中 ?
的个数,\(\operatorname{min}(w),\operatorname{max}(w)\) 分别是决策 ?
后若最终能走到的最低点和最高点的纵坐标 . 则欲求即为 \([s^kt^{2n}]D(0,1,s,t)\) .
首先容易得到方程:
令 \(K(x,y)=xy(1-t(x^{-1}y^{-1}+xy+sy^{-1}x))\),则原式可以简化为:
为了求解,考察函数 \(X,Y\) 满足 \(K(1,Y(t))=K(X(y,t),y)=0\)(可以简单解出).
在原式中代入 \(x=1\):
此时令 \(y=Y(t)\) 让等号左侧变成 0,即可得出 \(D(0,0,s,t)\) 的值,进而可以知道 \(D(1,y,s,t)\) 的值:
类似的,可以得到 \(D(0,y,s,t)\) 的封闭形式,进而可以组合出 \(D\) 的封闭形式:
代入 \(x=0,y=1\) 并仔细地展开整理可以得到答案的生成函数:
后面看 joke3579 的吧(
图
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/18328102
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ