📜  门|门CS 2010 |问题 28

📅  最后修改于: 2021-09-25 06:37:18             🧑  作者: Mango

简单图的度数序列是图中节点的度数按降序排列的序列。以下哪个序列不能是任意图的度序列?

(I) 7, 6, 5, 4, 4, 3, 2, 1
(II) 6, 6, 6, 6, 3, 3, 2, 2
(III) 7, 6, 6, 4, 4, 3, 2, 2
(IV) 8, 7, 7, 6, 4, 2, 1, 1 

(A) I 和 II
(B) III 和 IV
(C)仅 IV
(D) II 和 IV答案: (D)
说明:解决这个问题的通用算法或方法是

1: 程序 isV alidDegreeSequence(L)

2:对于列表L中的n做

3: 如果 L 在当前元素旁边没有 n 个元素,则返回 false

4:将列表的下 n 个元素减 1

5:按度数顺序排列,即降序

6:如果列表中的任何元素变为负数,则返回 false

7:返回真

这种方法背后的基本原理来自简单图的属性。枚举 false 返回,1) 如果 L 在当前元素之后没有足够的元素或 2) 如果列表中的任何元素变为负数,则意味着没有足够的节点以简单的图形方式容纳边,这将导致违反简单图的两个条件中的任何一个(两个节点之间没有自环和多边),如果不是其他条件。

见 http://www.geeksforgeeks.org/data-structures-and-algorithms-set-25/

此解决方案由Vineet Purswani 提供。

另一个:

度数序列 d1,d2,d2。 . .如果非负整数的 dn 是图的度数序列,则它是图形的。我们现在引入一个强大的工具来确定特定序列是否由于哈维尔和哈基米而成为图形

哈维尔-哈基米定理:

→ 根据该定理,令 D 为 d1,d2,d2 的序列。 . . dn d1 ≥ d2 ≥ d2 ≥ 。 . . dn 表示 n≥ 2 且 di ≥ 0。

→ 那么 D0 是通过以下方式获得的序列:

→ 丢弃 d1,并且
→ 从 D 的下一个 d1 个条目中减去 1。
→ 即度数序列 D0 将是: d2-1, d2-1, d3-1 。 . . , dd1+1 -1 。 . . , dn
→ 那么,D 是图形的当且仅当 D0 是图形的。

现在,我们将此定理应用于给定的序列:

选项 I) 7,6,5,4,4,3,2,1 → 5,4,3,3,2,1,0 → 3,2,2,1,0,0 → 1,1,0 ,0,0 → 0,0,0,0 所以它的图形。

选项二) 6,6,6,6,3,3,2,2 → 5,5,5,2,2,1,2 (升序排列) → 5,5,5,2,2,2 ,1 → 4,4,1,1,1,0 → 3,0,0,0,0 → 2,-1,-1,-1,0 但 d(顶点的度数)是非负的,所以它的不是图形。

选项 III) 7,6,6,4,4,3,2,2 → 5,5,3,3,2,1,1 → 4,2,2,1,1,0 → 1,1,0 ,0,0 → 0,0,0,0 所以它的图形。

选项 IV) 8,7,7,6,4,2,1,1 ,这里顶点的度数是 8 并且顶点总数是 8 ,所以这是不可能的,因此它不是图形。

因此只有选项 I) 和 III) 是图形序列,答案是选项 D

该解决方案由Nirmal Bharadwaj 提供。
这个问题的测验