POJ1659Havel-Hakimi定理判断图的可图性

原创 2015年07月09日 22:20:04
//度序列
//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,到这一步出现了负数,因此该序列是不可图的。
//132K	16MS
#include <iostream>
#include<algorithm>
using namespace std;

#define  MAX_N 12

static struct nod
{
	int e,num;
};

static nod x[MAX_N];
static int maps[MAX_N][MAX_N];
static int cmp(nod a,nod b)
{
	return a.e>b.e;
}

int main()
{
	int T;
	scanf("%d",&T);
	int N;
	while(T--)
	{
		memset(maps,0,sizeof(maps));
		scanf("%d",&N);
		for(int i=0;i<N;++i){
			scanf("%d",&x[i].e);
			x[i].num = i;
		}
	    bool flag = true;
		int cnt = 0;
		int num;
		while(true)
		{
		    sort(x+cnt,x+N,cmp);
			num = x[cnt].e;
			if (x[cnt].e==0)
			 break;
			for (int i=cnt+1;i<=cnt+num;++i)
			{
				x[i].e--;
				maps[x[i].num][x[cnt].num] = 1;
				maps[x[cnt].num][x[i].num] = 1;
				if (x[i].e<0)
				 flag = false;
			}
			if (!flag)
				break;
			cnt++;
		}
		if (flag){
		 printf("YES\n");
		 for (int i=0;i<N;++i){
		  for (int j=0;j<N;++j)
		    printf("%d ",maps[i][j]);
		  printf("\n");
		 }
		}
		else
		 printf("NO\n");
		if (T)
		 printf("\n");
	}

	return 0;
}


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

1、度序列:
  • makenothing
  • makenothing
  • 2014年11月20日 10:45
  • 3827

有向图、无向图是否有环的判断

今天在做数据库的调度冲突可串行性判别的程序,中间要用到有向图中环判定的问题,特摘录如下。这些算法和思想都是来自网上的,在此感谢原作者! 先介绍一下无向图的判断算法,这个比较简单: 判断无向...
  • u013146742
  • u013146742
  • 2016年07月21日 20:54
  • 2065

Matrix-Tree定理(2)----矩阵树定理

那么,现在就可以进入正题了-------->矩阵树定理(Matrix Tree Theorem) 不知道矩阵行列式等线性代数知识的,请左转:点击打开链接 Part 1 Matrix Tre...
  • Marco_L_T
  • Marco_L_T
  • 2017年06月06日 21:55
  • 598

概率图几种模型的简介和比较

基础知识     概率图是一类用图的形式表示随机变量之间条件依赖关系的概率模型, 是概率论与图论的结合。图中的节点表示随机变量,缺少边表示条件独立假设。根据图中边的有向、无向性,模型可分为两类:有向图...
  • lina_suda
  • lina_suda
  • 2015年11月06日 16:39
  • 3750

哥德尔不完备性定理——从数学危机到哲学危机

一、哥德尔不完备性定理的基本内容    一个普遍公认的事实是,哥德尔不完备性定理在数理逻辑中占有极其重要的地位,是数学与逻辑发展史中的一个里程碑。    哥德尔关于形式系统的不完备性定理,首次发表...
  • tiankonguse
  • tiankonguse
  • 2014年02月20日 14:50
  • 1066

判断无向图是否有回路

1.初步认识  2.具体阐述  前提:对于无向图G,图中有结点数为m,边数为n .n>=m时,由图论知识可知有回路; .n .重复执行直到图中无结点或...
  • lcj_cjfykx
  • lcj_cjfykx
  • 2013年05月01日 22:34
  • 1478

资源图与死锁定理的灵活运用

资源图与死锁定理的灵活运用@(OS)强调一下,死锁预防需要限制资源的请求顺序。死锁避免需要限制资源的分配顺序。越早下手处理死锁问题,对机器的性能影响越大。因此,Unix这种追求快的系统,这两种都不采用...
  • u011240016
  • u011240016
  • 2016年11月23日 14:48
  • 2616

bzoj 4894: 天赋 矩阵树定理求有向图生成树数量

题意给你一个有向图的邻接矩阵,求以1为根的外向生成树数量。 n
  • qq_33229466
  • qq_33229466
  • 2017年12月26日 15:23
  • 78

判断无向图的存在,Havel-Hakimi定理

Havel定理描述 给定一个非负整数序列{d1,d2,...dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化。进一步,若图为简单图,则称此序列可简单图化。 可图化...
  • banbanbanzhuan
  • banbanbanzhuan
  • 2017年06月16日 19:56
  • 103

平面图中的欧拉定理

定理:设G为任意的连通的平面图,则v-e+f=2,v是G的顶点数,e是G的边数,f是G的面数。题目描述:给出一个一笔画图形的n个节点的坐标,请你求解这个图形把平面分成了几个面 一笔画图形一个是把图上...
  • joeycom2
  • joeycom2
  • 2016年08月09日 21:38
  • 951
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ1659Havel-Hakimi定理判断图的可图性
举报原因:
原因补充:

(最多只允许输入30个字)