Havel-Hakimi定理

转自http://sbp810050504.blog.51cto.com/2799422/883904     
我一直想写一些关于图论学习的收获。一直由于这样或者那样的原因都没有开始。无论如何,现在开始吧!
那么到底什么是图呢?我们这里说的图当然不是像照片一样的东东。最权威的定义:图=顶点集合+边集合。换言之,凡是能抽象成点集合和边集合的东 西都是图。比如:中国地图。地图上的城市是一个个的点,而任意两个相邻城市之间有路。那么地图就是很直观的一种图。为了更方便的表示,我们引入了英语单 词。Vertext(顶点),Edge(边),Graph(图)。不管什么图,就可以用G<V,E>表示了。
地图是一种图,中国的七大水系网也是一种图。很多湖泊可以视为点,而长江、黄河这些可以看作边。由于水流基本上是单向的(当然也有倒流的情况,这里我们理 想化就忽略了),所以,像这样:边有方向的图我们称为有方向的图(长江水只能从喜马拉雅流向东海,而绝对不会反过来的)简称有向图。如果边没有方向,那当 然称为无向图了。
我们还是回到地图。都说条条大路通北京(你说罗马也没错),那么有到底有多少条路到北京呢?在图论里,把这样连接到一个点的边的数量(比如连接到北京的路)称为:度!
对于图的所有顶点,我们可以统计出每个顶点的度。像这样的一串数字,我们称之为:度序列。那么反过来,给定一个序列,能否判断这个序列是可图的 呢?这里有一个定理:Havel-Hakimi定理可以用来判定一个序列是否可图。Poj1659就是用Havel-Hakimi解决的。

  

Havel-Hakimi定理的内容可百度之。
例题:POJ-1659
Havel-Hakimi定理很容易理解:
三步走就可以了:
比如序列:4 7 7 3 3 3 2 1

 

下标
1
2
3
4
5
6
7
8
4
7
7
3
3
3
2
1
第一步:把序列按降序排序。

 

下标
1
2
3
4
5
6
7
8
7
7
4
3
3
3
2
1
第二步:删除第一个数7。序列变成

 

下标
1
2
3
4
5
6
7
7
4
3
3
3
2
1
第三步:从头开始,数7个数,也就是下标:[1,7]把[1,7]区间里的值都减1
由于第一个数已经删除,那么序列变成这样的了:

 

下标
1
2
3
4
5
6
7
6
3
2
2
2
1
0
然后:
重复第一步:排序。
重复第二步:删除第一个数6
重复第三步:从头开始数6个数:也就是下标【1,6】,把区间【1,6】中的数删除。序列变成:

 

下标
1
2
3
4
5
6
2
1
1
1
0
-1
由于已经出现了-1,而一个点的边数(度)不可能为负数。所以,我们就可以判定序列无法构成一个图,所以此序列是不可图的。
下面再举一个例子:
已经排序:

 

5
4
3
3
2
2
2
1
1
1.
删除第一个数5:

 

4
3
3
2
2
2
1
1
1.
把前面5个数减1:

 

3
2
2
1
1
2
1
1
1.
排序:

 

3
2
2
2
1
1
1
1
1.
删除第一个数3:

 

2
2
2
1
1
1
1
1.
把前面3个数减1:

 

1
1
1
1
1
1
1
1.
排序:

 

1
1
1
1
1
1
1
1.
删除第一个数1:

 

1
1
1
1
1
1
1.
把前面1个数减1:

 

0
1
1
1
1
1
1.
排序:

 

1
1
1
1
1
1
0
删除第一个数1:

 

1
1
1
1
1
0
把前面1个数减1:

 

0
1
1
1
1
0
排序:

 

1
1
1
1
0
0
依此类推:到最后只剩下:

 

0
0
0
0
由此判断该序列是可图的。

转载于:https://www.cnblogs.com/gj-Acit/archive/2013/03/06/2946190.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Axure RP 8.0正式版下载地址 安装和汉化说明

1.Axure RP和中文包包下载地址 官网地址&#xff1a;http://www.axure.com.cn/3510/ 2.下载完成后安装 3.破解 axure8.0注册码激活码&#xff1a;&#xff08;亲测可用&#xff09;用户名&#xff1a;aaa注册码&#xff1a;2GQrt5XHYY7SBK/4b22Gm4Dh8alaR0/0k3gEN5h7FkVPIn8oG3…

el-table记录删除后的表格滚动条位置

场景&#xff1a;一般el-table的删除操作&#xff0c;在删除数据后前端会重新调接口获取数据&#xff0c;此时列表更新会自动回到el-table顶部。但是我们想要让列表刷新后回到当时的滚动条位置那里&#xff0c;那么就需要记住删除时候的位置。 <el-table ref"eltable&q…

curry化函数

Curry化是一个转换过程&#xff0c;即我们执行函数的转换过程. function fn(x,y){ if(typeof y"undefined"){ return function(y){ return xy; } } return xy; } console.log(fn(10,5)) console.log(fn(1…

wcf返回datatable必须给tablename赋值

From: http://www.cnblogs.com/hxw/archive/2010/07/10/1774841.html 最近在学习WCF,返回datatable的时候老是出现“An error occurred while receiving the HTTP response to http://localhost:9999/calculatorservice. This could be due to the service endpoint binding no…

Vue 兄弟组件之间传值 Bus方法

本文针对两个无关联的组件&#xff0c;A组件触发B组件的方法并传值 注意&#xff1a;A、B是兄弟组件&#xff0c;不是父子组件。 1、在vue项目中新建一个js文件&#xff08;文件名&#xff1a;bus.js&#xff09; // 仅针对两个无关联的兄弟组件使用 import Vue from vue expor…

mysql_load

将文本内容导入mysql数据库中导入语句加入字符集&#xff0c;否则乱码 character set gbk;因为name列加了唯一索列&#xff0c;加这个是为避免重复数据插入报错 ignore into table把相同的先删除掉 replace into table[linux] 这里关键load data infile /tmp/t0.txt ignore int…

统一社会信用代码 正则验证

统一社会信用代码C#正则验证 [1-9A-GY]{1}[1239]{1}[1-5]{1}[0-9]{5}[0-9A-Z]{10} 转载于:https://www.cnblogs.com/Qos8/p/5889573.html

微信支付开发(1) JS API支付

From: http://www.cnblogs.com/txw1958/p/wxpayv3-jsapi.html 关键字&#xff1a;微信支付 微信支付v3 jsapi支付 统一支付 Native支付 prepay_id 作者&#xff1a;方倍工作室 原文: http://www.cnblogs.com/txw1958/p/wxpayv3-jsapi.html 本文介绍微信支付下的jsapi实现流程…

Find命令使用详解

Find命令使用详解 Find是Linux中查找文件的命令&#xff0c;“find”命令能帮助我们在使用,管理Linux的日常事务中方便的查找出我们需要的文件。Find 命令的特点&#xff1a;实时、精确、支持众多查找标准、遍历指定目录中的所有文件完成查找&#xff0c;速度慢&#xff1b;Fin…

el-upload多文件上传;el-upload采用递归依次上传文件;el-upload采用递归在上一个文件上传成功后再传下一个文件

场景&#xff1a; 需求是接口一次上传一个文件&#xff0c;前一个文件上传成功后再调下一个接口上传下一个文件。 el-upload本身就支持多文件上传。但是它是并发进行&#xff0c;例如&#xff1a;选择一千个文件后&#xff0c;是一千个文件自动立马并行调用一千个后端接口去上传…

昨天事情还是比较多,让我晚上加了会班

今天早上睡的有点沉&#xff0c;然后昨天晚上也是睡的早10&#xff1a;00 转载于:https://www.cnblogs.com/bkchengzheng/p/5891271.html

.Net (C#)委托和事件(获取多个返回值)

From: http://www.xuebuyuan.com/841530.html 在讲如何获取多个返回值之前先来看一个小例子&#xff1a; private void button1_Click(object sender, EventArgs e) { int Number 200; //设置Number的值为 200。 Publishser pub new…

el-dialog点击弹框外区域不关闭弹框;

el-dialog正常点击弹框外区域是关闭弹框&#xff0c;如若不想关闭弹框&#xff0c;设置如下属性即可&#xff1a; :close-on-click-modal"false"

Xen的起源与工作原理

如今&#xff0c;虚拟化市场上满是各种不同的虚拟化解决方案。多年以来&#xff0c;VMware一直控制着基于i386的虚拟化市场。然而&#xff0c;现在的开源解决方案Xen也 在迅速地扩张自己的市场。在本文中&#xff0c;TechTarget中国的特约虚拟化专家Sander van Vugt将介绍什么是…

男女完全匹配算法

#include<iostream> #include<String> #include"Free_W_M_Stack.cpp" using namespace std; int Number1(string elem, string A[], int n){//返回某个人的匹配号for (int i 0; i < n; i){if (elem A[i])return i;}return -1; } int main(){int n;/…

监听el-dialog关闭弹窗事件;el-dialog注册@close关闭事件

场景&#xff1a;在关闭el-dialog弹框时候&#xff0c;做数据清空。只需要给el-dialog注册close关闭事件即可&#xff1a; <el-dialog title"标题" :visible.sync"bind" size"small" closecloseDialog> </el-dialog>//关闭弹框的事件…

手机游戏赚钱到底有多难?接入运营商或需一年

假如你是一个手机游戏创业者&#xff0c;假如你想赚钱&#xff0c;亲&#xff0c;请先与运营商搞好关系&#xff0c;或者&#xff0c;请找一个有SP经验或者熟悉手机游戏审批流程的合作伙伴&#xff0c;否则&#xff0c;等待你的将是甚至长达一年的审批期。 先来讲讲我为何要写这…

总是骗人的你

从这周来&#xff0c;就一直在和周围的人说着要结束实习。到现在&#xff0c;也没有办法办理离职。我现在已经看不起自己了&#xff0c;我已经成为我当初讨厌的人&#xff0c;嘴里一直嚷嚷着&#xff0c;却一直都做不到。还不停的给周围的人说&#xff0c;我想&#xff0c;这种…

Controller向View传值方式总结

From: http://www.cnblogs.com/guohu/p/4377974.html 总结发现ASP.NET MVC中Controller向View传值的方式共有6种&#xff0c;分别是&#xff1a; ViewBagViewDataTempData向普通View页面传一个Model对象向强类型页面传传一个Model对象用一个ViewModel对象解决所有问题 首先我们…

el-table-column动态显示与隐藏

两个不同条件下共用一个el-table表格&#xff0c;并且通过v-if控制某一列的显示与否。 若不生效&#xff0c;则按照如下设置。 ​​​​​​​<el-table-column v-if"undo" label"xxxx" prop"xx" min-width"110" show-overflow-too…