弦图相关

简单记录弦图相关概念和算法。

一些定义

弦:连接环上不相邻两点的边。

弦图:每个简单环都有至少一条弦的无向图。

事实上,可以预见的是,弦图的每个简单环都可以表示为若干三元环的对称差。

团:任意两点都有边的无向图。

单纯点:与其相邻的点集的导出子图是团。

完美消除序列:点集的一个排列 \(\{p\}\) ,满足每个点 \(p_i\)\(p_j (j > i)\) 的导出子图中都是单纯点。

弦图判定

定理:一个无向图是弦图当且仅当它有一个完美消除序列。

对于一个弦图,可以从后往前确定完美消除序列,定义一个点的势为与当前已经确定的点有边的点的数量。每次选择势最大的未加入的点加入完美消除序列即可。

但是如果不是弦图,求出来的序列就不会是完美消除序列,因此弦图判定等价于判定该序列是否为完美消除序列。 从后往前枚举每个点按定义判定即可,需要注意如果当前判定到了点 \(x\) ,说明在其后的点 \(y\) 都是满足完美消除序列的性质的,据此可以在判定的时候优化,复杂度 \(O(n+m)\)

最小色数

等于最小团数,等于所有点在加入前的势的最大值加一。

事实上最优方案就是从完美消除序列从后往前染色。

最大独立集

等于最小团覆盖数。

事实上最优方案就是从完美消除序列从前往后加点。