Click Here

以下纯属复制论文,避免以后再看一次

一些概念

子图

点集和边集都是原图的子集的图

诱导子图

是子图,不含其它边


子图,并且是完全图

极大团

不是任何一个团的子图

最大团

点数最多的团


最小染色

用最少的颜色染给每个点,使相邻点不同色

最大独立集

不相邻的最大点集

最小团覆盖

最少的团覆盖所有点

显然的结论

团数\(\le\)色数
最大独立集\(\le\)最小团覆盖


连接环内两个不相邻的点的边

弦图

任意大于三的环都至少有一条弦

结论1

弦图的诱导子图是弦图

单纯点

\(N(v)\)\(v\)相邻的点集
\(v\)为单纯点当且仅当\({v}+N(v)\)的诱导子图为团

结论2

任何一个弦图至少一个单纯点
不是完全图的弦图至少两个

完美消除序列

每个点正好出现一次的序列\({v_1, v_2, ..., v_n}\)
满足\(v_i\)\({v_i, v_{i+1}, ..., v_n}\)的诱导子图中为单纯点

结论3

一个无向图为弦图当且仅当它有一个完美消除序列

证明

看论文

结论5

团数\(=\)色数
最大独立集\(=\)最小团覆盖

证明

看论文


求解

求完美消除序列

不想学什么\(Lex BFS\)的方法,自己看论文

还是\(MCS\)最大势算法好:
\(n...1\)的顺序给点标号
标号为\(i\)的点为完美消除序列的第\(i\)
\(label[i]\)表示与多少个已经标号的点相邻
每次找\(label\)最大的点标号
复杂度\(O(n+m)\)

判断一个序列是否为完美消除序列

设在\(v_i,v_{i+1}..v_n\)中,与\(v_i\)相邻的点依次为\(v_{j1}...v_{jk}\)
只需要判断\(v_{j1}\)是否与\(v_{j2}..v_{jk}\)相邻即可
复杂度\(O(n+m)\)

最少的颜色给所有点染色&团数

完美消除序列逆序,贪心
每次给一个点染色可以染的最小的颜色

最大独立集&最小团覆盖

完美消除序列中,贪心,能选就选

题目

[HNOI2008]神奇的国度
[TJOI2007]小朋友
[ZOJ1015]Fishing Net

相关文章:

  • 2021-08-26
  • 2021-08-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-19
  • 2021-10-31
  • 2021-10-01
猜你喜欢
  • 2022-02-10
  • 2021-10-29
  • 2021-11-11
  • 2022-12-23
  • 2021-09-20
  • 2021-09-27
相关资源
相似解决方案