
弦图识别(Chordal Graph Recognition)
问题描述
给定一个简单无向图,含 N 个顶点和 M 条边。第 i 条边连接顶点 ai 和 bi。
- 一个图是弦图(chordal graph),当且仅当它不含长度 ≥4 的诱导环(即任意长度 ≥4 的环都至少有一条弦)。
- 一个完美消去序(perfect elimination ordering)是一个顶点排列 v0,v1,…,vN,使得对每个 i,顶点 vi 在子图 G[{vi,vi+1,…,vN}] 中的邻居构成一个团。
已知:图是弦图 当且仅当 它存在完美消去序。
要求:
- 若图是弦图,输出任意一个完美消去序;
- 否则,输出任意一个长度 ≥4 的诱导环。
约束条件
- 1≤N≤2×105
- 0≤M≤2×105
- 0≤ai,bi<N
- ai=bi
- {ai,bi}={aj,bj}(i=j)
输入
N M
a0 b0
a1 b1
:
aM−1 bM−1
输出
若图非弦图:
NO
K
c0 c1 ⋯ cK−1
其中 K≥4 是诱导环长度,ci 是环上顶点(按环顺序,可为任意起点与方向)。
若图是弦图:
YES
v0 v1 ⋯ vN−1
其中 vi 是完美消去序中的第 i 个顶点(0-indexed)。
4 4
1 3
0 3
1 2
0 1
YES
2 0 1 3
5 4
0 2
1 3
0 1
3 2
NO
4
1 3 2 0
10 15
0 1
1 2
2 3
3 4
4 0
5 6
6 7
7 8
8 9
9 5
0 5
1 7
2 9
3 6
4 8
NO
5
6 3 2 9 5