二分图边染色

\(S_u\) 表示 \(u\) 的邻边组成的颜色集合。

依次加入每一条边。

假设现在要加入 \((u,v)\)。如果存在一种颜色 \(c\) 使得 \(c\notin S_u\)\(c\notin S_v\),那么我们简单地将 \((u,v)\) 边的颜色设为 \(c\) 即可。

否则存在 \(c\notin S_u\)\(c\in S_v\)。找到 \(v\) 的颜色为 \(c\) 的出边 \((v,w)\),将 \((u,v)\) 的颜色设成 \(c\),并尝试改变 \((v,w)\) 的颜色。由于图是二分图,这样的调整一定可以在 \(n\) 轮以内结束。

posted @ 2025-04-02 20:35  Network_Error  阅读(17)  评论(1)    收藏  举报