Havel-Hakimi定理(推断是否可图序列)
进一步。若图为简单图,则称此序列可简单图化
| Time Limit: 5000MS | Memory Limit: 10000K | |||
| Total Submissions: 8315 | Accepted: 3522 | Special Judge | ||
Description
未名湖附近共同拥有N个大小湖泊L1, L2, ..., Ln(当中包含未名湖),每一个湖泊Li里住着一仅仅青蛙Fi(1 ≤ i ≤ N)。
假设湖泊Li和Lj之间有水路相连,则青蛙Fi和Fj互称为邻居。如今已知每仅仅青蛙的邻居数目x1, x2,
...,xn,请你给出每两个湖泊之间的相连关系。
Input
第一行是測试数据的组数T(0 ≤ T ≤ 20)。每组数据包含两行。第一行是整数N(2 < N < 10)。第二行是N个整数,x1, x2,..., xn(0 ≤ xi ≤ N)。
Output
对输入的每组測试数据,假设不存在可能的相连关系,输出"NO"。否则输出"YES"。并用N×N的矩阵表示湖泊间的相邻关系,即假设湖泊i与湖泊j之间有水路相连,则第i行的第j个数字为1,否则为0。每两个数字之间输出一个空格。
假设存在多种可能,仅仅需给出一种符合条件的情形。相邻两组測试数据之间输出一个空行。
Sample Input
3
7
4 3 1 5 4 2 1
6
4 3 1 4 2 0
6
2 3 1 1 2 1
Sample Output
YES
0 1 0 1 1 0 1
1 0 0 1 1 0 0
0 0 0 1 0 0 0
1 1 1 0 1 1 0
1 1 0 1 0 1 0
0 0 0 1 1 0 0
1 0 0 0 0 0 0 NO YES
0 1 0 0 1 0
1 0 0 1 1 0
0 0 0 0 0 1
0 1 0 0 0 0
1 1 0 0 0 0
0 0 1 0 0 0
Source
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
struct node
{
int pos,x;
}c[15];//pos表示顶点坐标。x表示顶点的度
bool cmp(node a,node b)
{
return a.x>b.x;
}
int main()
{
int ncase,n,edge[15][15];//edge是否存在合理的相邻关系
scanf("%d",&ncase);
while(ncase--)
{
int flag=0;
memset(edge,0,sizeof(edge));
memset(&c,0,sizeof(&c));
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&c[i].x);
c[i].pos=i;
if(c[i].x>=n)
flag=1;
}
if(flag)
{
printf("NO\n");
continue;
}
int first_pos,first_x;
for(int i=0;i<n;i++)
{
sort(c+i,c+n,cmp);//排序。c+i,c+n各自是数组開始,结束地址
first_x=c[i].x;
first_pos=c[i].pos;
for(int k=1;k<=first_x&&!flag;k++)
{
int j=c[i+k].pos;
if(c[i+k].x<=0) flag=1;
c[i+k].x--;
edge[j][first_pos]=edge[first_pos][j]=1;
}
}
if(!flag)
{
printf("YES\n");
for(int i=0;i<n;i++)
{
printf("%d",edge[i][0]);
for(int j=1;j<n;j++)
printf(" %d",edge[i][j]);
printf("\n");
}
}
else
printf("NO\n");
printf("\n");
}
return 0;
}
Havel-Hakimi定理(推断是否可图序列)的更多相关文章
- POJ1659 Frogs' Neighborhood(Havel–Hakimi定理)
题意 题目链接 \(T\)组数据,给出\(n\)个点的度数,问是否可以构造出一个简单图 Sol Havel–Hakimi定理: 给定一串有限多个非负整数组成的序列,是否存在一个简单图使得其度数列恰为这 ...
- HDU 2454 Degree Sequence of Graph G(Havel定理 推断一个简单图的存在)
主题链接:pid=2454">http://acm.hdu.edu.cn/showproblem.php?pid=2454 Problem Description Wang Haiya ...
- Havel--Hakimi定理推断可图化 python
介绍: 哈维尔[1955]--哈吉米[1962]算法能够用来判读一个度序列d是否是可图化的. 哈维尔[1955]--哈吉米[1962]定理: 对于N > 1,长度为N的度序列d可以可图化当且仅当 ...
- POJ 1659 Frogs' Neighborhood(可图性判定—Havel-Hakimi定理)【超详解】
Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 9897 Accepted: 41 ...
- Codeforces 1091E New Year and the Acquaintance Estimation Erdős–Gallai定理
题目链接:E - New Year and the Acquaintance Estimation 题解参考: Havel–Hakimi algorithm 和 Erdős–Gallai theore ...
- POJ1659 Frogs' Neighborhood(Havel定理)
给一个无向图的度序列判定是否可图化,并求方案: 可图化的判定:d1+d2+……dn=0(mod 2).关于具体图的构造,我们可以简单地把奇数度的点配对,剩下的全部搞成自环. 可简单图化的判定(Have ...
- Havel定理
先贴一个百度百科的注释 Havel定理编辑 本词条缺少概述.名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 中文名 Havel定理 外文名 Canisters theorem 特 ...
- LD1-M(简单图的判定+构造,Havel定理)
题目链接 /* *题目大意: *给出一个图的每个点的度的序列,求能否构成一个简单图,如果能构出简单图,则输出图的邻接矩阵; * *算法思想: *Havel定理的应用; *给定一个非负整数序列{dn}, ...
- cdoj913-握手 【Havel定理】
http://acm.uestc.edu.cn/#/problem/show/913 握手 Time Limit: 2000/1000MS (Java/Others) Memory Limit ...
随机推荐
- 保存登陆username和password
在一些软件中登陆时保存username和password是常见的功能,它实现起来也特别简单,其原理就是在点击登陆button时推断是否勾选保存password选项,假设勾选,则在内存中保存一份包括us ...
- HTML5中标记与特殊属性
不允许写结束标记的元素有(只允许<元素/>): area.base.br.col.command.embed.hr.img.input. keygen.link.meta.param.so ...
- Android Exception 8(Couldn't read row 0, col -1 from CursorWindow)
java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Curso ...
- RGB和HSL色彩的相互转换
转自: http://blog.csdn.net/aniven/article/details/2205851 RGB和HSL(也叫HSB/HSV)是两种色彩空间,即:红,绿,蓝(Red,Green, ...
- 解决在IE9,IE10浏览器下,程序没有任何错误,easy ui页面不加载任何数据的问题
对于web应用程序,经常用到开发人员工具,按F12,可以调试脚本,可以查看监视网络,查看各页面加载时间,非常方便,今天在调试js时,不小心打开了兼容性视图, 之后每次打打开页面时,均不显示页面post ...
- yum安装Apache,Mysql,PHP
用yum安装Apache,Mysql,PHP. 用yum安装Apache,Mysql,PHP. 2.1安装Apache yum install httpd httpd-devel 安装完成后,用/e ...
- log4j使用示例
### set log levels ### log4j.rootLogger = INFO , D #INFO , C , D , E ### console ### #log4j.appender ...
- Atitit.js模块化 atiImport 的新特性javascript import
Atitit.js模块化 atiImport 的新特性javascript import 1. 常见的js import规范amd ,cmd ,umd1 1.1. Require更多流行3 2. at ...
- PHP系统学习1
1.php变量 2.php引用变量 $name1=&$name2; 3.全局变量 4.魔术变量__LINE__,__FILE__,__FUNCTION__,__CLASS__,__METHOD ...
- QT .pro文件 LIBS用法详解
在程序中需要使用到团队其它成员开发的静态库和动态库,起初是知道使用LIBS变量在在.pro文件中指定需要包含的库,但是实际使用的时候却遇到很大麻烦,但其实确实是因为自己看官方文档不太用心造成的. 下面 ...