专栏文章

题解:P14196 [ICPC 2024 Hangzhou R] Japanese Bands

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

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@minkekpb
此快照首次捕获于
2025/12/02 03:51
3 个月前
此快照最后确认于
2025/12/02 03:51
3 个月前
查看原文
神秘题。设 SS 是所有有相关限制的数的集合。
S1S_1 是只在左边出现的数的集合,S2S_2 是只在右边出现的数的集合,那么有 SS1S2S\setminus S1 \setminus S2 是同时出现在两边的数的集合(显然应该有 S1S2=S_1 \bigcap S_2=\varnothing)。设 a=S1,b=S2,c=SS1S2,d=mabca=|S_1|,b=|S_2|,c=|S\setminus S1 \setminus S2|,d=m-a-b-cdd 代表了没有施加限制的数的个数,这些数可以任意选择。
考虑此时的方案数,左边的选择是把 n1n_1 切成 a+ca+c 个不可空和 dd 个可空集,预先给这 dd 个集合加上 1 后插板可得 (n1+d1a+c+d1)=(n1+d1mb1)\binom{n_1+d-1}{a+c+d-1}=\binom{n_1+d-1}{m-b-1}。同理右边是 (n2+d1b+c+d1)=(n2+d1ma1)\binom{n_2+d-1}{b+c+d-1}=\binom{n_2+d-1}{m-a-1}。因此答案为:
\begin{align}&\sum_{S_1}\sum_{S_1 \bigcap S_2=\varnothing}\binom{n_1+d-1}{m-b-1}\binom{n_2+d-1}{m-a-1}\\&=\sum_{S_1}\binom{n_2+d-1}{m-|S_1|-1}\sum_{S_1 \bigcap S_2=\varnothing}\binom{n_1+d-1}{m-|S_2|-1}\end{align}
其中 S1,S2S_1,S_2 其实不是随便取的。容易发现在左边和右边一一连边的情况下,没连到的边其实是 S1S_1 内部的边和 S2S_2 内部的边。因此如果把 kk 条限制建图,我们不能要求有一条边的两个端点同时出现在同一边。换言之,S1S_1S2S_2 都是独立集。
求出独立集集合是简单的,记一个数组 ff,对于每条边 (u,v)(u,v),将 f2u1or2v1f_{2^{u-1} \operatorname{or}2^{v-1}} 加 1,然后做高维前缀和,最终 f=0f=0 的那些状态就是独立集。这是好理解的,因为这相当所有 (2u1or2v1)(2^{u-1} \operatorname{or}2^{v-1}) 的超集(同时出现 uuvv 的点集)都不合法。
额外的,那些没有施加限制的点也不能进入 S1,S2S_1,S_2,因此还要对每个没有施加限制的点 xx,对 2x12^{x-1} 的超集加 1。
现在求出了 S1,S2S_1,S_2 的取值范围,我们先预处理对于每个 S2S_2 的贡献 (n1+d1mS21)\binom{n_1+d-1}{m-|S_2|-1},然后枚举 S1S_1,发现后面那个 \sum 就是 S1S_1 的补集子集和。对 S2S_2 贡献再做一个高维前缀和即可。

评论

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

正在加载评论...