做题记录 26.1.24

\(\textcolor{purple}\odot\) P14900 [ICPC 2018 Yokohama R] Four-Coloring

考虑将所有点以横坐标为第一关键字,纵坐标为第二关键字排序,则每个点前面至多有四个点与之相连,令 \(u\) 之前与之相邻的点集为 \(N(u)\),令目前 \(u\) 的颜色为 \(c_u\)

依次枚举点,设目前点为 \(u\),若 \(N(u)\) 没有取遍 \(1\sim 4\),则 \(u\) 任取一种还没有出现的值即可,否则说明 \(|N(u)|=4\) 且恰好取遍 \(1\sim 4\),考虑调整法

枚举 \(v\in N(u)\)\(c\in \{1,2,3,4\}/\{c_v\}\),找出所有从 \(v\) 出发的路径满足路径上颜色为 \(c\)\(c_v\) 交替,将所有合法路径并中 \(c\)\(c_v\) 互换,显然操作后仍然为一组合法染色

若某次操作后 \(N(u)\) 没有取遍 \(1\sim 4\),则可以对 \(u\) 染色

定理:必然存在一组 \((v,c)\) 使得操作后 \(N(u)\) 没有取遍 \(1\sim 4\)

证明:

  • 若一组 \((v,c)\) 操作后 \(N(u)\) 仍然取遍 \(1\sim 4\),说明存在路径 \(v-w\),其中 \(v,w\) 都与 \(u\) 相邻,且路径含偶数个点,\(c\)\(c_v\) 交替
  • 若所有 \((v,c)\) 操作后都有 \(N(u)\) 取遍 \(1\sim 4\),说明对于 \(u\) 任意两个不同邻点 \(v,w\),两者之间存在含偶数个点且 \(c_v,c_w\) 交替的路径,\(u\) 和其四个邻点的导出子图同胚于 \(K_5\),不是平面图

由此容易做到 \(O(n^2)\)

代码

参考

若每次去除度数最小的点,则同样可以得到顶点序列满足每个点向前的连边数量 \(\le 4\),从而实现对任意平面图的处理

posted @ 2026-01-25 09:18  Hstry  阅读(2)  评论(0)    收藏  举报