AT_agc043_c [AGC043C] Giant Graph
考虑到一个点被选的贡献是 \(10^{18(i + j + k)}\),由于 \(10^{18}\) 远大于 \(n\),相当于你必须选择 \(i + j + k\) 尽量大的点。
先不考虑这个题本身怎么做,先想想暴力把图建出来,这个题会被描述成什么样子。
考虑从大往小枚举,这个做法是,如果当前点的所有出点有一个被选,那么就不能选,否则就一定选,从大往小做是为了尽量不去反悔这个过程,扫一遍就做完了。
实际上,这个过程很像博弈中的必胜态和必败态,因此我们可以用 SG 函数去描述这一过程,但是到这复杂度仍然是 \(O(n^3)\) 的。
接下来最重要的一步是,思考三张图的本质是什么,本质上是你同时在若干个状态里选择一个状态行走,每个结点则代表目前的博弈状态,也就是说,这完全可以用 SG 函数的结论将三张图拆开做,只需要选择最后异或值为 \(0\) 的点即可。
当然你也可以卷积这个过程,不过有个结论是,SG 函数的最大值不会超过 \(\sqrt m\),具体来说其关于图中的递归深度,直接基于值域做即可。

浙公网安备 33010602011771号