CF1977E
sunkuangzheng · · 题解
笑点解析:
显然图的形态只有两种可能:
- 弱连通。
- 两条不连通的链,可能有额外边。
第二种情况由于图是 dag 非常好做。
考虑第一种情况,我们对图拓扑排序后一层最多有 2 个点,那么原图可以用两条链覆盖,现在我们需要找到它们。
我们首先找到两条链的链头,钦定第一条链链头是
考虑依次加入
然后我们又有一个 naive 的思路:如果点
问题在于我们想要知道点
- 如果链
3 为空,则:- 如果
x,y 只有一个点可以到i ,则直接划入对应的链。 - 否则,加入链
3 。
- 如果
- 否则,
- 如果
z 可以到达i ,加入链3 。 - 否则,
- 如果
x 可以到达i ,将链3 全部划入链2 ,并将i 划入链1 。 - 否则,将链
3 全部划入链1 ,并将i 划入链2 。
- 如果
- 如果
容易发现以上做法的询问次数不超过
赛时 AC 记录。