专栏文章

题解:CF2135E2 Beyond the Palindrome (Hard Version)

CF2135E2题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mingt6by
此快照首次捕获于
2025/12/02 02:10
3 个月前
此快照最后确认于
2025/12/02 02:10
3 个月前
查看原文
\xdef\0{\texttt{0}}\xdef\1{\texttt{1}}\xdef\D{\displaystyle}

E1

反射容斥入门。
删除 \1\0\1\0 的操作容易让我们想到括号匹配,进一步我们可以想到转化为折线,定义 \1\1+1+1\0\01-1
从左往右走,结果中 \0\0 的数量为折线的最低点(与起点高度差)。
从右往左走,结果中 \0\0 的数量为折线最高点与终点的高度差。
由于 \0\1\0\1 数量差一定,所以一个串合法当且仅当 l+r=snl+r=s_n,其中 ll 为最低点高度,rr 为最高点高度,sns_n 为终点高度。
答案可以表示为
Ans=l0r0g(l,r,l+r)Ans=\sum_{l\le0}\sum_{r\ge0} g(l,r,l+r)
其中 g(l,r,m)g(l,r,m) 表示从 (0,0)(0,0) 走到 (n,m)(n,m),最低点恰好为 ll,最高点恰好为 rr 的方案数。
这两个恰好不好处理,容斥。
g(l,r,m)=f(l,r,m)f(l1,r,m)f(l,r+1,m)+f(l1,r+1,m)g(l,r,m)=f(l,r,m)-f(l-1,r,m)-f(l,r+1,m)+f(l-1,r+1,m)
其中 f(l,r,m)f(l,r,m) 表示不碰到 y=ly=ly=ry=r 两条直线的方案数。
根据反射容斥的知识,我们每碰到一条直线,就把这之前的部分翻转,翻转前的方案和翻转后的一一对应。
考虑翻转对起点的影响。
(0,y)L(0,2ly)R(0,y+2(rl))(0,y)R(0,2ry)L(0,y+2(lr))\begin{aligned} (0,y)&\xrightarrow{L}(0,2l-y)\xrightarrow{R}(0,y+2(r-l))\\ (0,y)&\xrightarrow{R}(0,2r-y)\xrightarrow{L}(0,y+2(l-r))\\ \end{aligned}
LL 表示应用对 y=ly=l 翻转,RR 同理。
ways((x,y))ways((x,y)) 表示从 (x,y)(x,y) 走到终点 (n,m)(n,m) 的方案数,这题中 xx 一定为 00,后面直接省略,简单的推导我们可以得到 ways((x,y))=(nn+my2)ways((x,y))=\binom{n}{\frac{n+m-y}2}
f(l,r,m)=ways(I)ways(L)ways(R)+ways(LR)+ways(RL)ways(LRL)ways(RLR)+f(l,r,m)=ways(I)-ways(L)-ways(R)+ways(LR)+ways(RL)-ways(LRL)-ways(RLR)+\dots
II 表示初始的起点,即 (0,0)(0,0)。(这些东西都可以写成矩阵的形式,但这样讲应该也挺容易理解的。)
即你现在有一个无限长的纸条写着 LRLRLR  I  LRLRLR\dots LRLRLR\;I\;LRLRLR\dots,正着走即为第一步走 LL,倒着走即为第一步走 RR
走了偶数距离:系数为 11,走到 2k2k 时方案为 \D(nn+m2k(rl))\D\binom{n}{\frac{n+m}2-k(r-l)}
走了奇数距离:系数为 1-1,走到 2k12k-1 时(相当于先走到 2k2k,最后再走一步 RR)方案为 \D(nn+m2(rk(rl)))\D\binom{n}{\frac{n+m}2-(r-k(r-l))}
由于 kk 可取所有整数,为了让式子好看一点,做一点变换。
f(l,r,m)=k(nn+m2+k(rl))(nn+m2+k(rl)r)f(l,r,m)=\sum_k\binom{n}{\frac{n+m}2+k(r-l)}-\binom{n}{\frac{n+m}2+k(r-l)-r}
但是做到这里还是没法通过 E1。
注意 m=l+r+t=t(rl)+2r,t{1,0,1}m=l+r+t=t-(r-l)+2r,t\in\{-1,0,1\},定义 k=k12k'=k-\frac12
f(l,r,l+r+t)=k(nn+t2+k(rl)+r)(nn+t2+k(rl))f(l,r,l+r+t)=\sum_k\binom{n}{\frac{n+t}2+k'(r-l)+r}-\binom{n}{\frac{n+t}2+k'(r-l)}
枚举 d=rld=r-l,把 dd 相同的一起计算。我们发现第一项下指标几乎不重不漏且覆盖了 [0,n][0,n],我们只要把几项填回去就可以用二项式定理化成 2n2^n 抵消掉。
f(l,r,m)f(l,r,m)g(l,r,m)g(l,r,m) 做贡献:t=0,r[0,d]t=0,r\in[0,d]r=0r=0 时第一项等于第二项,没有贡献,所以此时贡献为 \Ddk(nn2+kd)\D-d\sum_k\binom{n}{\frac n2+k'd}
f(l,r,m)f(l,r,m)g(l+1,r1,m)g(l+1,r-1,m) 做贡献:t=0,r[1,d1]t=0,r\in[1,d-1],加上 r=0r=0 时第一项等于第二项,没有贡献,所以此时贡献为 \Ddk(nn2+kd)\D-d\sum_k\binom{n}{\frac n2+k'd}
f(l,r,m)f(l,r,m)g(l+1,r,m)g(l+1,r,m) 做贡献:t=1,r[0,d1]t=1,r\in[0,d-1],正好填满,所以此时贡献为 \Ddk(nn+12+kd)\D-d\sum_k\binom{n}{\frac{n+1}2+k'd}
f(l,r,m)f(l,r,m)g(l,r1,m)g(l,r-1,m) 做贡献:t=1,r[1,d]t=-1,r\in[1,d],正好填满,所以此时贡献为 \Ddk(nn12+kd)\D-d\sum_k\binom{n}{\frac{n-1}2+k'd}
要注意必须四个项一起被计算或者一起不被计算,否则 2n2^n 无法正确地抵消。

E2

K=2kK=2k',有 KK 是奇数。
考虑计算每个 (nm)\binom{n}{m} 的贡献,其中 m=n+t+x2m=\frac{n+t+x}2,枚举 tt
上面的式子很简洁,可以看出来贡献为
K,d[dK=x][2K]d\sum_{K,d}[dK=x][2\nmid K]d
线性筛因数和。
实现的时候注意要不要去掉 d=1d=1 的情况。

评论

0 条评论,欢迎与作者交流。

正在加载评论...