[ABC306Ex] Balance Scale 题解
首先先考虑只有 $<$ 和 $>$。
分析一下可以发现,只有当形成 $<$ 或 $>$ 的环时,该图是不合法的,所以题目可以转化为对每条无向边改为有向边,然后对 $\text{DAG}$ 计数。
因为 $n\le17$,所以我们考虑状压 $\text{dp}$ 。
我们考虑 $\text{DAG}$ 的构成:拓补时,入度为 $0$ 的点会被删除。
所以我们可以枚举入度为 $0$ 的点的点集,由于两者连接的边可以换方向,我们只用考虑枚举独立集即可。
很显然这会算重,考虑容斥。
我们分析一下算重的原因:一个独立集的子集必然为独立集。
所以任何一个大小大于 $1$ 的自己都会算重,若令独立集的点数为 $cnt$,则系数为 $(-1)^{ cnt+1}$。
然后我们考虑 $=$ 的处理。
其实它就相当于合并两个点。
我们如法炮制,在枚举每个独立集时,我们可以直接将任意两个有连边的两点合并。
这就等价于记录连通分量的个数。
同理容斥,若令子图的联通分量数为 $comp$,同理容斥系数为 $(-1)^{ comp+1}$。
这样就做完了。

浙公网安备 33010602011771号