Havel-Hakimi定理---通过度数列判断是否可图化

0、可图:一个非负整数组成的序列如果是某个无向图的度序列,则该序列是可图的。

1、度序列:Sequence Degree,若把图G所有顶点的度数排成一个序列,责成该序列为图G的一个序列。该序列可以是非递增序的、可以是非递减序列、可以是任意无序的。

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

定理描述:由非负整数组成的有限非递增序列,S={d1,d2,d3...dn},当且仅当S1={d2-1,d3-1...d(d1+1),d(d1+2)......dn}也是可图的,也就是说,序列S1也是由非负整数组成的有限非递增序列,S1是由S的删除第一个元素d1之后的前d1个元素分别减一后得到的序列。

(注,Havel-Hakimi定理 讨论的是在非递增序列下判别是否可图的定理)

3、证明略,实例演示:

判断序列S:=6,5,4,3,3,3,2,0 是否可图。

证:a. 删除首元素6,将除去第一个元素后面的6个元素减一,得到:S1 = 4,3,2,2,2,1,0

b.删除首元素4,将除去第一个元素后面的4个元素减一,得到:S2 = 2,1,1,1,1,0

c,删除首元素2,将除去第一个元素后面的2个元素减一,得到:S3 = 0,0,1,1,0

d.重新排序:S4 = 1,1,0,0,0

e.删除首元素1,将除去第一个元素后面的1个元素减一,得到:S3 = 0,0,0,0

则最后得到的是非负序列,证明 序列式可图的!

判断序列S:=7,6,4,3,3,3,2,1 是否可图。

证:a. 删除首元素7,将除去第一个元素后面的7个元素减一,得到:S1 = 6,3,2,2,2,1,0

b.删除首元素6,将除去第一个元素后面的6个元素减一,得到:S2 = 2,1,1,1,0,-1

最后得到的是存在负数的序列,证明 序列式不可图的!

例题:POJ-1659

原文地址:https://www.cnblogs.com/fzl194/p/8745671.html

时间: 2024-11-01 18:10:10

Havel-Hakimi定理---通过度数列判断是否可图化的相关文章

Havel--Hakimi定理判断可图化 python

list1 = [ 4, 7, 7, 3, 3, 3, 2, 1 ] list2 = [ 5, 4, 3, 3, 2, 2, 2, 1, 1, 1 ] def havel_hakimi_algo( degree_list ): degree_list.sort( reverse = True ) print degree_list for degree in degree_list: if degree < 0: return False if degree != 0: remove_val =

delphi 函数isiconic 函数 判断窗口是否最小化

http://blog.sina.com.cn/s/blog_66357ab901012t2h.html delphi 函数isiconic 函数 判断窗口是否最小化 (2012-05-26 22:00:21) 转载▼ 标签: 杂谈   The IsIconic function determines whether the specified window is minimized (iconic). 函数isiconic返回值取决于指定窗口是否已经最小化. BOOL IsIconic(HWN

判断资源贴图是否有alpha

/* modfly selected textures`s maxSize and ImportFormat bool hasAlpha = true; if(hasAlpha)then(texture.size/2 and trueColor)else(16bit) 2014.05.27 */ using UnityEngine; using System.Collections; using UnityEditor; public class modflyTextures : Scripta

Havel–Hakimi algorithm(判断度数序列是否可图)

问题 J: Degree Sequence of Graph G 时间限制: 1 Sec  内存限制: 128 MB 题目描述 Wang Haiyang is a strong and optimistic Chinese youngster. Although born and brought up in the northern inland city Harbin, he has deep love and yearns for the boundless oceans. After gr

HDU 2444 The Accomodation of Students(判断是否可图 + 二分图)

题目大意:有一群人他们有一些关系,比如A认识B, B认识C, 但是这并不意味值A和C认识.现在给你所有互相认识的学生,你的任务是把所有的学生分成两个一组, 住在一个双人房里.相互认识的同学可以住在一个双人房里. 输入数据: 有n个学生 m个关系(m对是相互认识的) 接下来m行是,是m个关系. 如果能够匹配成功则输出需要双人房的个数,否则输出'No' 思路:先判断是否是个二分图,可以使用黑白染色的方法来判断.然后再进行最大匹配. #include<stdio.h> #include<str

判断窗体是否最小化和最大化

[DllImport("user32.dll")] public static extern bool IsIconic(IntPtr hwnd); [DllImport("user32.dll")] public static extern bool IsZoomed(IntPtr hwnd);

图像处理之基础---高斯低通滤波在指定区域画放大圆形图

像淘宝中的物品图片进行放大扫描效果: 上图中图一为原图,现给定素材,需要将图像画城图二然后输出.现在问题是,给定的图像都是矩形,怎么将矩形的图片画到中间的那两个圆里面呢? http://download.csdn.net/detail/raistlic/5054386 代码 http://bbs.csdn.net/topics/390363649

Android-普通变量与普通方法内存图

描述Worker对象: package android.java.oop11; // 描述Worker public class Worker { public String name; public int age; public void printlnNameAge() { System.out.println("name:" + this.name + " age:" + age); } } main测试方法: package android.java.oo

Havel-Hakimi定理(判断是否可图序列)

给定一个非负整数序列{dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化.进一步,若图为简单图,则称此序列可简单图化 至于能不能根据这个序列构造一个图,就需要根据Havel-Hakimi定理中的方法来构图. 可图化的判定:d1+d2+--dn=0(mod 2).关于具体图的构造,我们可以简单地把奇数度的点配对,剩下的全部搞成自环. 可简单图化的判定(Havel定理):把序列排成不增序,即d1>=d2>=-->=dn,则d可简单图化当且仅当d'={d2-1,d3-1