度序列可图性判断(Havel-Hakimi定理)


Havel定理描述

给定一个非负整数序列{d1,d2,…dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化。进一步,若图为简单图,则称此序列可简单图化。

可图化的判定比较简单:

  1. $d_1 + d_2 + d_3 +…+d_n = 0(mod2)$
  2. $n-1geq d_{max}$

关于具体图的构造,我们可以简单地把奇数度的点配对,剩下的全部搞成自环。

可简单图化的判定,有一个Havel定理,是说: 我们把序列排成不增序,即d1>=d2>=…>=dn,则d可简单图化当且仅当d’=(d2-1, d3-1, … d(d1+1)-1, d(d1+2), d(d1+3), … dn)可简单图化。这个定理写起来麻烦,实际上就是说,我们把d排序以后,找出度最大的点(设度为d1),把它和度次大的d1个点之间连边,然后这个点就可以不管了,一直继续这个过程,直到建出完整的图,或出现负度等明显不合理的情况。


演示

给出序列序列:

4 7 7 3 3 3 2 1

降序排序

7 7 4 3 3 3 2 1

删除第一个数字7,将其后7个数都减去1,并重新排序

6 3 2 2 2 1 0

重复步骤

2 1 1 1 0 -1

发现有负数,则这个序列不能组成简单图



再给出

5 4 3 3 2 2 2 1 1 1

删除数字5,将其后5个数都减去1,并重新排序

3 2 2 2 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1 1 0

…以此类推,直至

0 0 0

所以可以组成简单图


参考资料及习题

Havel-Hakimi定理
HDOJ2454 Degree Sequence of Graph G

原文:大专栏  度序列可图性判断(Havel-Hakimi定理)

原文地址:https://www.cnblogs.com/wangziqiang123/p/11657410.html

时间: 2024-10-10 01:35:40

度序列可图性判断(Havel-Hakimi定理)的相关文章

POJ 1659 Frogs' Neighborhood 可图性判断-Havel定理

Description 未名湖附近共有N个大小湖泊L1, L2, ..., Ln(其中包括未名湖),每个湖泊Li里住着一只青蛙Fi(1 ≤ i ≤ N).如果湖泊Li和Lj之间有水路相连,则青蛙Fi和Fj互称为邻居.现在已知每只青蛙的邻居数目x1, x2, ..., xn,请你给出每两个湖泊之间的相连关系. Input 第一行是测试数据的组数T(0 ≤ T ≤ 20).每组数据包括两行,第一行是整数N(2 < N < 10),第二行是N个整数,x1, x2,..., xn(0 ≤ xi ≤ N

Poj 1659 Frogs&#39; Neighborhood 图的可图性判断

/* 先将所有度数按从大到小排序,取最大的度数为N的节点,将其后面N个节点的度数减一,如果出现负数节点或者后面的节点数量不足N则可以判定无法构成图,重复这个过程,直到所有的度数都为零*/#include <cstdio> #include <iostream> #include <cstdlib> #include <algorithm> #include <set> #include <map> #include <vecto

POJ 1659 Frogs&#39; Neighborhood(可图性判定—Havel-Hakimi定理)【超详解】

Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 9897   Accepted: 4137   Special Judge Description 未名湖附近共有N个大小湖泊L1, L2, ..., Ln(其中包括未名湖),每个湖泊Li里住着一只青蛙Fi(1 ≤ i ≤ N).如果湖泊Li和Lj之间有水路相连,则青蛙Fi和Fj互称为邻居.现在已知每只青蛙的邻居数目x1, x2, ..

序列可图化判定及顶点着色

1.度序列可图化问题 可图化的度序列其表示的图并不唯一,即画出来的图有可能不是同构体,主要原因是由度序列产生生成矩阵的时候方法并不唯一. 例子:度序列 [3 4 2 3 4 2] 图1 图2 注意度数为3 的两个顶点在图1中并不连接,在图2中却相连,说明图1图2不是同构. 对于可图化序列的简单图绘制需要用到生成矩阵,表示了随着顶点数增加而图拓展的过程.距离如下,度序列为 ,其相应的度序列矩阵为    生成矩阵的第i行等于度序列矩阵的第i行减去它的第i+1行得到,若度序列矩阵出现负值,则该序列不可

POJ 1637 Sightseeing tour 混合图欧拉回路存在性判断

没有想到网络流还能解决这一类问题,完全想不到@[email protected] 一开始把所有的无向边制定任意方向有当做有向边看,然后统计每个点的入度和出度.以前有向图的欧拉回路判定是每个点的入读都等于出度,这样可以保证可以回到起点,现在在一些边可以调换方向的情况下,所有定点的入度和出度之差必定为偶数,因为调换任意一条边的方向都会使两个定点的入度和出度变化2,所以要构成一个欧拉回路所有点的入度和出度之差都为偶数,并设差为deg. 现在问题转化成了能否通过改变一些边的方向来是的所有点的入度出度都为

可图性判定--Havel-Hakimi定理

两个概念 1.度序列 若把图G所有顶点的度数排成一个序列S,则称S为图G的度序列. 2.序列是可图的 一个非负整数组成的序列如果是某个无向图的度序列,则称该序列是可图的. Havel-Hakimi定理 由非负整数组成的非增序列S:d1, d2 ,..., dn (n≥2,d1≥1)是可图的,当且仅当序列S1:d2-1,d3-1,...,dd1+1-1,dd1+2,...,dn是可图的.其中,序列S1中有n-1个非负整数,S序列中d1后的前d1个度数(即d2~dd1+1)减1后构成S1中的前d1个

度序列与Havel-Hakimi 定理

度序列:若把图G所有顶点的度排成一个序列s,则称s为图G的度序列 序列是可图的:一个非负整数组成的有限序列, 如果是某个无向图的度序列,则称该序列是可图的可图的 判断一个序列是否是可图的,可以用 Havel-Hakimi定理 Havel-Hakimi定理:由非负整数组成的非递增序列 s:d[1],d[2],d[3],...,d[n](n>=2,d1>=1)是可图的, 当且仅当s1:d[2]-1,d[3]-1,...,d[d1+1]-1,d[d1+2] ...d[n] 是可图的. 序列s1中有n

POJ 1659 Frogs&#39; Neighborhood(度序列构图)

题意  中文 根据Havel-Hakimi定理构图就行咯  先把顶点按度数从大到小排序  可图的话  度数大的顶点与它后面的度数个顶点相连肯定是满足的  出现了-1就说明不可图了 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N = 20; int mat[N][N], ord[N]; bool cmp(int i, int j) { retur

POJ 1659 Frogs&amp;#39; Neighborhood(度序列组成)

意甲冠军  中国 依据Havel-Hakimi定理构图即可咯  先把顶点按度数从大到小排序  可图的话  度数大的顶点与它后面的度数个顶点相连肯定是满足的  出现了-1就说明不可图了 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N = 20; int mat[N][N], ord[N]; bool cmp(int i, int j) { ret