弦图学习笔记

弦图定义,任意一个长度大于 \(3\) 的环都存在一条边连接两个不相邻的点。
定义一个点 \(v\) 为单纯点:设 \(N(v)\) 表示与 \(v\) 相邻的点,则 \(v\) 被称为当 \(\{v\}\ +\ N(v)\) 为团。
弦图的完美消除序列:\(v_1,\ v_2,\ v_3,\ ...,\ v_n\),满足 \(v_i\)\(\{v_{i\ +\ 1},\ v_{i\ +\ 2},\ ...,\ v_n\}\) 中是单纯点
有个结论:一个图为弦图当且仅当存在完美消除序列
求完美消除序列的最大势算法:每个点的势为相邻点中已经被选入序列的个数,每次将势最大的放入列头。
求极大团:极大团一定是 \(v\ +\ N(v)\) 的形式(\(N(v)\) 为在 \(v\) 之后的与 \(v\) 相邻的点)。另 \(Next(w)\) 表示 \(N(w)\) 中最前的点,check \(v\ +\ N(v)\) 是否为极大团只需判断是否存在 \(w\) 使得 \(Next(w)\ =\ v\)\(|N(v)|\ +\ 1\ \leq\ |N(w)|\) 即可,如果存在则 \(v\ +\ N(v)\) 不是极大团。
最小染色方案:按照完美消除序列从后向前贪心染。
最大独立集:按照完美消除序列从后向前贪心染。
最小团覆盖:设最大独立集为 \(\{p_1,\ p_2,\ p_3,\ ...,\ p_m\}\) 则最小团覆盖为 \(\{p_1\ +\ P(1),\ p_2\ +\ P(2),\ ...,\ p_n\ +\ P(n)\}\)
区间图的完美消除序列是右端点从小到大排序的结果
区间图最大独立集,右端点从小到大依次贪心处理
区间图最小染色,右端点从大到小依次贪心处理
弦图构造clique tree:对于每个点记录在消除序列中不在自己之后的点的最后一个极大团 \(lst\),然后在消除序列上从后向前扫,维护每个点的 \(parent\),扫到一个极大团的时候和 \(parent\) 连边。对于每个点 \(u\) 更新与它相连的所有在 \(u\) 之前的点 \(v\)\(parent\),如果 \(v\ \neq\ lst_u\)\(parent_v\ =\ lst_u\)

posted @ 2018-06-10 18:03  King_George  阅读(808)  评论(0)    收藏  举报