CF1515G 题解
题意
给定一张 \(n\) 个点 \(m\) 条边的有向图,有边权,进行 \(q\) 次询问。
每次询问给定三个参数 \(v,s,t\),你需要回答是否存在一条起点终点均为 \(v\) 的路径,满足 \(\text{路径长}+s\equiv 0\pmod t\)。
\(n,m,q \le 2 \times 10^5,0 \le s < t \le 10^9\)。
题解
石锤了,我既不会图论也不会数论……
首先每个强连通分量可以隔离。接着可以通过强连通发掘一些性质。
- 若 \((x,y,z)\),一定有 \((y,x,-z)\)。在模任意数下都成立。
因为强连通,\(x,y\) 一定可以在同一个环上。从 \(y\) 开始,走 \(t\) 圈,此时为 \(0\)。最后一步不走,就是 \(-z\)。
进而得出下面的性质:
- 同一个强连通分量中答案都一样。
- 任意一个环都可以通过简单环的加减运算得到。
设所有简单环长为 \(l_1,l_2,...,l_k\),那么由裴蜀定理,可以得到所有 \(gcd(l_1,l_2,...,l_k)\) 倍数的长度。于是只需求所有简单环,就可以 \(O(1)\) 查询。
寻找简单环,不难想到 \(\operatorname{dfs}\) 树。这又分为只有一条非树边和有多条非树边的简单环。又发现,第二种一定可以由第一种加减而成。于是就解决了。