1. 程式人生 > >Havel-Hakimi定理(判斷一個度序列是否可圖)

Havel-Hakimi定理(判斷一個度序列是否可圖)

1,Havel-Hakimi定理主要用來判定一個給定的序列是否是可圖的。

2,首先介紹一下度序列:若把圖 G 所有頂點的度數排成一個序列 S,則稱 S 為圖 G 的度序列。

3,一個非負整陣列成的有限序列如果是某個無向圖的序列,則稱該序列是可圖的。

4,判定過程:(1)對當前數列排序,使其呈遞減,(2)從S【2】開始對其後S【1】個數字-1,(3)一直迴圈直到當前序列出現負數(即不是可圖的情況)或者當前序列全為0 (可圖)時退出。

5,舉例:序列S:7,7,4,3,3,3,2,1  刪除序列S的首項 7 ,對其後的7項每項減1,得到:6,3,2,2,2,1,0,繼續刪除序列的首項6,對其後的6項每項減1,得到:2,1,1,1,0,-1,到這一步出現了負數,因此該序列是不可圖的

6.我解釋一下意思:排好序後為d1,d2,d3,d4....dn,設度數最大的為v1,將它與度數次大的前d1個頂點連邊,然後這個頂點就可以不管了,及在序列中刪除首項d1,並把後面的d1個度數減1,依次下去,知道所有的為0就是可圖的,出現負數,就一定不可圖..

相關推薦

Havel-Hakimi定理(判斷一個序列是否)

1,Havel-Hakimi定理主要用來判定一個給定的序列是否是可圖的。 2,首先介紹一下度序列:若把圖 G 所有頂點的度數排成一個序列 S,則稱 S 為圖 G 的度序列。 3,一個非負整陣列成的

Havel-Hakimi定理(判斷一個序列是否)

Havel定理描述給定一個非負整數序列{d1,d2,...dn},若存在一個無向圖使得圖中各點的度與此序列一一對應,則稱此序列可圖化。進一步,若圖為簡單圖,則稱此序列可簡單圖化。 可圖化的判定比較簡單:d1+d2+...dn=0(mod2)。關於具體圖的構造,我們可以簡單地

Havel-Hakimi定理---通過度數列判斷是否

post 數列 討論 bsp 2個 HR lan degree ... 0、可圖:一個非負整數組成的序列如果是某個無向圖的度序列,則該序列是可圖的。 1、度序列:Sequence Degree,若把圖G所有頂點的度數排成一個序列,責成該序列為圖G的一個序列。該序列可以是非遞

根據的度數判斷的連通性的Havel-Hakimi定理

原定理: 如果給定了n個數a1,a2,……,an,那麼是否有可能是某一個圖結點的度數呢? 為了儘量構成一個連通圖,我們首先考慮其中度數最多的點,為了解決其連線問題,我們考慮兩種情況: 1.連線度數較少的點 2.連線度數較多的點 2方法有一個明顯的好處,就是“儘量儲存多的點"

Havel-Hakimi定理 hdu2454 / poj1695 Havel-Hakimi定理

tor pan rom havel 介紹 code max 裸題 繼續 Havel-Hakimi定理 當年一度熱門出如今ACM賽場上的算法。 算法定義:

POJ-1659 Frogs' Neighborhood---Havel-Hakimi定理

poj pri HR tdi () pro 建圖 turn blog 題目鏈接: https://vjudge.net/problem/POJ-1659 題目大意: 給定度數列,判斷是否可以建圖 思路: Havel-Hakimi定理 1 #include<iost

POJ 1659 Frogs' Neighborhood (Havel--Hakimi定理

node body i++ urn .html special wid 個數字 mes                   Frogs‘ Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total S

ZOJ 3732 性判定--Havel-Hakimi定理

題意:給定n個點度數,問是否可以構造一個簡單圖。 思路:Havel-Hakimi定理 : 1.將度數從小到大排序 2.用第一個向後面連續d[1]個點連邊,若點數不夠則不能構造 3.若點數夠,則將每個點度數減1,若出現負值,則不能構造, 4.去掉該點返回步驟一,直到集合中沒有點

Havel-Hakimi定理的方法來構圖

給定一組非負數字,(數字為節點的度),判斷該組數字能不能構成圖。 Havel-Hakimi定理: 將序列按照從大到小排序之後,從第二個數開始到第一個數的長度+1為止,依次減1。每操作一次,刪掉第一個數字。直到整個陣列被刪完都沒有-1出現。則可圖。 按照這個定理,我們可做的操作如下: 1.排序 2.先

Havel-Hakimi定理

可圖(Graphic) 什麼是可圖,那需要先說一下度序列。 度序列是把圖的多有頂點度數排列成一個序列s,則稱s為圖G的度序列。 度序列可以是按照頂點的順序排列,也可以按照遞增、遞減的順序排列。所謂的可圖,是建立在度序列的基礎上的。 序列是可圖的:一個非負整陣列成的有限序列如果是某個無向圖

Java陣列反射實現動態的判斷一個物件書是陣列,並且對陣列進行拆包輸出 。。

  package me.test; import java.lang.reflect.Array; public class ArrayReflect {  public static void m

python判斷一個對象是否叠代

span font false rom size iterable print 對象 方法 如何判斷一個對象是可叠代對象? 方法是通過collections模塊的Iterable類型判斷: >>> from collections import

圖片按需載入(判斷一個元素是否在視區)思路

首先html程式碼結構如下 <body> <div id='container'>    ```     其他內容    ``` <div id='abc'> 是否在可視區 </div>

ZOJ-3732 Graph Reconstruction(判定無向度數序列能否化)

題意: 首先給一個點n,再給出n個數代表無向圖n個節點的度數,問該度數序列能否構成一個無向圖,如果不能則輸出impossible。如果能,再判斷是否能唯一可圖化一張圖,如果唯一,輸出unique,並列印所有邊的資訊。如果不唯一,輸出multiple,並列印構成的任意兩個不同

判斷一個序列是否是二叉搜尋樹的後序遍歷,C++實現

https://www.cnblogs.com/wanglei5205/p/8684408.html 原創文章,轉載請註明出處! 本題牛客網地址 部落格文章索引地址 部落格文章中程式碼的github地址 1.題目      

python 判斷一個元素在不在list的時間複雜

先上程式碼 import time a = list(range(10**6)) b = 10**6-1 start = time.time() if b in a: print('ok') end = time.time() print('list:%f'%(end-

判斷一個序列是不是二叉搜尋樹的後序遍歷序列

#include <iostream> #include <cstring> #include <queue> using namespace std; bool check(int a[],int start,int last) {

[LeetCode] Is Subsequence 判斷一個字串是否為另一個的子序列

宣告:原題目轉載自LeetCode,解答部分為原創 Problem : Given a string s and a string t, check if s is subsequence of t. You may assume that there is on

Wilson定理一個判斷素數的簡單方法)

Wilson定理;對於一個任意整數n>1,當且僅當n是一個素數時,(n-1)!+1能夠被n整除。 演算法如下: function Wilson(n) {//當且僅當n>1且n是素數時,返回true if((n-1)!+1) mode n==0 then r

判斷一個點是否在某個區域內。百,高德,騰訊都能用。(php版)

<?php // *** 配置檔案(表示區域的三維陣列)其內的點,必須按順時針方向依次給出! $area = array( // 天通苑店 0 => array( array('x'=>116.38295, 'y'=>40.094