首页 > 其他分享 >CF1407E

CF1407E

时间:2023-07-20 15:01:57浏览次数:37  
标签:遍历 颜色 染色 短路 CF1407E 如果

In Luogu

从 \(1\) 出发染色不好处理,考虑从 \(n\) 出发进行染色,尽可能让每一条路不可经过,这样也是最大化其他点到 \(n\) 的最短路。

如果当前为 \(u\),点 \(v\) 和 \(u\) 有边,如果只有一种颜色的边,那么这条路是可以禁止经过的,将 \(v\) 设置成与边不同的颜色。如果有不同颜色的边,那么 \(v\) 的颜色无论怎么染色都以到达 \(u\)。

从 \(n\) 开始进行反向 BFS 。

当第一遍历到未染色的点 \(x\),将点 \(x\) 设为与边不同的颜色。如果遍历到染色的点,并且染色的点与边颜色相同,说明此点无法避开,加入到队列中,更新到 \(n\) 的最短路,直到 \(1\) 入队。

时间复杂度为 \(\mathcal{O}(n + m)\)。

代码不放。

标签:遍历,颜色,染色,短路,CF1407E,如果
From: https://www.cnblogs.com/User90174/p/17568436.html

相关文章