Loading

二分图边着色学习笔记

二分图边着色学习笔记

题解:AT_abc317_g [ABC317G] Rearranging - 洛谷专栏

\(G\) 的边染色,是指对于每个边涂一个颜色,要求相邻的边涂不同种颜色,记最小使用颜色数为: \(\chi(G)\)

Vizing定理:

对于简单图 \(G\)\(\Delta(G)\le \chi(G)\le \Delta(G)+1\),其中 \(\Delta(G)\) 表示最大度数,当 \(G\) 为二分图时取到 \(\Delta(G)\)

二分图边着色构造算法

类似匈牙利算法,每次加入一条边 \((u,v)\)\(C(u)\) 表示 \(u\) 节点已经着的色的 \(mex\)

  1. \(C(u)=C(v)\) 则直接将 \((u,v)\) 染成 \(C(u)\)

  2. 否则设 \(C(u)<C(v)\),找到一条 \(v-u_1-v_1-u_2-v_2-\cdots\) 的链,满足 \(v_i-u_{i+1}\) 的边颜色为 \(C(u)\)\(u_i-v_i\) 边颜色为 \(C(v)\)。可以证明链上无点 \(u\)。将这些边的颜色交换,颜色为 \(C(v)\) 的变成 \(C(u)\),颜色为 \(C(u)\) 的变成 \(C(v)\)。最后将 \((u,v)\) 染成 \(C(u)\)

模板题:CF600F Edge coloring of bipartite graph - 洛谷

应用:排列型匹配

有一个定理:对于任意 m-正则二分图,一定有 \(m\) 边染色,即一定有 \(m\) 组完美匹配。

AT_abc317_g [ABC317G] Rearranging - 洛谷

AT_agc037_d [AGC037D] Sorting a Grid - 洛谷

P9070 [CTS2023] 琪露诺的符卡交换 - 洛谷

最后一个太神,先用这个算法排列成每个人的第 \(i\) 张卡形成排列,在通过交换 \((i,j)\)\((j,i)\) 置换矩阵,实现每个人都拥有排列:

image-20251124194006553

posted @ 2025-11-24 19:42  lupengheyyds  阅读(6)  评论(0)    收藏  举报