Loading

CF1413F Roads and Ramen

结论是,路径中有一个端点是直径端点。

你这么想,设 \(dis_i\)\(1\)\(i\)\(1\) 的个数,如果对于一条直径 \(p \to q\),若 \(dis_p = dis_q\) 直接取直径即可。

否则,对于每个点 \(u\),总有 \(p, q\) 中的一个与其 \(dis\) 相等,一个点到直径端点的距离最远,结论成立。

然后你以两个端点为根建线段树,每次就是区间翻转颜色求每种颜色的距离最大值,简单维护即可。

posted @ 2025-09-17 21:27  Alexande  阅读(5)  评论(0)    收藏  举报