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原题,Frogs’ Neighborhood

Havel-Hakimi定理的核心部分:

     for (int i = 1; i <= N; i++) {for (int j = i + 1; j <= N && a[i].num > 0; j++) {a[i].num--;a[j].num--;g[a[i].id][a[j].id] = g[a[j].id][a[i].id] = 1;}sort(a + i + 1, a + N + 1, cmp);if (a[i].num > 0) { sign = 0; break; }}

完整代码:

#define inf 0x3f3f3f3f
#define vec vector<int>
#define P pair<int,int>
#define MAX 15
#define ll long longstruct node {int id, num;
};
bool cmp(node n1, node n2) {return n1.num > n2.num;
}
int T, N, g[MAX][MAX];
node a[MAX];int main() {cin >> T;while (T--) {cin >> N;int sign = 1;memset(g, 0, sizeof(g));for (int i = 1; i <= N; i++)cin >> a[i].num, a[i].id = i;sort(a + 1, a + N + 1, cmp);for (int i = 1; i <= N; i++) {for (int j = i + 1; j <= N && a[i].num > 0; j++) {a[i].num--;a[j].num--;g[a[i].id][a[j].id] = g[a[j].id][a[i].id] = 1;}sort(a + i + 1, a + N + 1, cmp);if (a[i].num > 0) { sign = 0; break; }}if (a[N].num < 0 || !sign) {cout << "NO" << endl << endl;}else {cout << "YES" << endl;for (int i = 1; i <= N; i++) {for (int j = 1; j <= N; j++)cout << g[i][j] << ' ';cout << endl;}cout << endl;}}
}

图论-度序列可图性判断(Havel-Hakimi定理)相关推荐

  1. Havel—Hakimi定理(度序列)

    对于图的所有顶点,我们可以统计出每个顶点的度.像这样的一串数字,我们称之为:度序列.那么反过来,给定一个序列,能否判断这个序列是可图的呢?这里有一个定理:Havel-Hakimi定理可以用来判定一个序 ...

  2. 图的度序列:Havel定理

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

  3. Havel-Hakimi定理(判断一个度序列是否可图)

    1,Havel-Hakimi定理主要用来判定一个给定的序列是否是可图的. 2,首先介绍一下度序列:若把图 G 所有顶点的度数排成一个序列 S,则称 S 为图 G 的度序列. 3,一个非负整数组成的有限 ...

  4. 图论(2)完全图,顶点的度与度序列

    目录 一.完全图 偶图(双图或二部图) (2)完全偶图 简单图的补图 自补图 二.顶点的度与图的度序列 顶点的度 图的度序列(注意与图序列的区别) 图序列 图的频序列及其性质 例题 一.完全图.偶图与 ...

  5. c++ 遍历所有点且距离最短_L3图论第08课 图的遍历

    L3-图论-第08课 图的遍历 图的遍历是指,从给定图中任意指定的顶点(称为初始点)出发,按照某种搜索方法沿着图的边访问图中的所有顶点,使每个顶点仅被访问一次,这个过程称为图的遍历.遍历过程中得到的顶 ...

  6. 图论 —— 环与块 —— DAG 图判定

    [概述] 有向无环图(Directed Acyclic Graph),即 DAG 图,是指任意一条边有方向且不存在环路的图. 判断 DAG 图的方法有:拓扑排序 O(E).Bellman-Ford 算 ...

  7. 静息态fMRI+图论研究:难治性精神分裂症的脑功能网络

    <本文同步发布于"脑之说"微信公众号,欢迎搜索关注~~> 笔者比较关注精神疾病脑功能网络的变化特征,因此,最近都在看相关的文献.本次,笔者就给大家分享一篇相关的论文,该 ...

  8. 图论算法(5):图的广度优先遍历 BFS

    本章节内容使用 java 实现,Github 代码仓:https://github.com/ZhekaiLi/Code/tree/main/Graph/src 查看文章内的图片可能需要科学上网! 因为 ...

  9. C#四种相等性判断方法 equals,referenceEquals

    C#中的ReferenceEquals.Equals以及== C#中有一共有四种相等性判断方法: //Object中定义的三个方法 public static bool ReferenceEquals ...

最新文章

  1. Hadoop集群的基本操作(二:HBase的基本操作)
  2. Android 停止调试程序
  3. AD管控下的弹性云桌面和文件共享最佳实践
  4. Java内联虚拟方法调用的性能
  5. JS_Java_Oracle_MySQL截取字符串的函数
  6. spring的事件机制实战
  7. 9206-1118-周三 猜拳小游戏一次性版本
  8. 20120510,OSPF第三部分
  9. Creating and Interning Symbols
  10. 东南大学成贤学院计算机报名,2021上半年江苏东南大学成贤学院计算机等级考试报名通知...
  11. dejavu-python的音频指纹识别库
  12. 搜狗输入法截屏工具的使用
  13. 开放源码易语言摄像头拍照自动重命名拍学籍照和证件照
  14. centos 7 下双网卡bond 与 trunk口的交换机通信(用作KVM虚拟机)
  15. python小白从哪来开始-如何看待Python的由来?Python小白如何入门?(附教程)
  16. iOS 测试 xcodebuild 命令行打包遇到的坑与解决方案 2017
  17. 新东方雅思词汇---8.3、apt
  18. 【多尺度空间-光谱相互作用Transformer:Pan-Sharpening】
  19. qq视频转码失败怎么办_「新技能get√」必备!一看就会的视频转码压缩教程
  20. ASPCMS调用指定内容列表

热门文章

  1. 画流程图用什么软件好?
  2. 【基础】代码操作Word时,自动更新目录(一)
  3. SAS学习之基本统计过程
  4. CentOS挂载3T硬盘的方法
  5. 长时间看电脑的朋友,怎么保护您的眼睛
  6. 结合自己经历的一场机器人省赛浅谈如何学习单片机
  7. 英语四六级详细报名步骤来啦!
  8. 树莓派连接笔记本显示器(转载+整合)
  9. Best of Vim Tips 中文版
  10. mysql组复制(MGR)——背景