题意简述
给三个点数均为 $n$ 的无向图 $G_0, G_1, G_2$,构造一张新无向图 $W$,点数为 $n^3$,每个点的形式为 $(x_0, x_1, x_2)$。
对于原来 $G_0$ 中的一条边 $u, v$,连接所有 $(u, x_1, x_2), (v, x_1, x_2)$。$G_1, G_2$ 中的边同理。
点 $(x_0, x_1, x_2)$ 的点权为 $V^{x_0 + x_1 + x_2}$,其中 $V = 10^{18}$。
求 $W$ 的最大权独立集的权值。$n, m_0, m_1, m_2\le 10^5$。
主要思路
显然贪心优先选 $x_0 + x_1 + x_2$ 大的是最优的。不妨设所有的边的方向为从权值小的点连向权值大的。
那么一个点被选仅当它的出边中没有点被选。
不妨将其想象成一个公平游戏,则 $sg(x_0, x_1, x_2) = \operatorname{mex}\limits_{e((x_0, x_1, x_2), (y_0, y_1, y_2))}sg(y_0, y_1, y_2)$,为 $0$ 则选。
然后观察到三个维度是独立的,可以分开来做。
注意到这样的 SG 函数的上界是 $O(\sqrt{m})$ 的。
于是甚至不用写 FWT,暴力枚举就好了。
参考代码
1 |
|