hdu 2454 Degree Sequence of Graph G (推断简单图)
///已知各点的度,推断是否为一个简单图
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int a[1010];
bool cmp(int x,int y)
{
return x>y;
}
int main()
{
int t,n,i,j;
scanf("%d",&t);
while(t--)
{
int flag=1;
scanf("%d",&n);
for (i=0; i<n; i++)
scanf("%d",&a[i]);
sort(a,a+n,cmp);
while (a[0] && a[n-1]>=0)
{
int i = 1;
while (a[0]--)
{
--a[i++];
}
++a[0];
sort(a,a+n,cmp);
}
if(a[n-1]<0)
printf("no\n");
else
printf("yes\n");
}
return 0;
}
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。在这一点上已经出现了负。因此,序列图不可。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
hdu 2454 Degree Sequence of Graph G (推断简单图)的更多相关文章
- HDU 2454 Degree Sequence of Graph G——可简单图化&&Heavel定理
题意 给你一个度序列,问能否构成一个简单图. 分析 对于可图化,只要满足度数之和是偶数,即满足握手定理. 对于可简单图化,就是Heavel定理了. Heavel定理:把度序列排成不增序,即 $deg[ ...
- HDU 2454 Degree Sequence of Graph G(Havel定理 推断一个简单图的存在)
主题链接:pid=2454">http://acm.hdu.edu.cn/showproblem.php?pid=2454 Problem Description Wang Haiya ...
- HDU 2454"Degree Sequence of Graph G"(度序列可图性判断)
传送门 参考资料: [1]:图论-度序列可图性判断(Havel-Hakimi定理) •题意 给你 n 个非负整数列,判断这个序列是否为可简单图化的: •知识支持 握手定理:在任何无向图中,所有顶点的度 ...
- hdu 2454 Degree Sequence of Graph G(可简单图化判定)
传送门 •Havel-Hakimi定理: 给定一个非负整数序列{d1,d2,...dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化. 进一步,若图为简单图,则称此序列可简单图 ...
- Hdoj 2454.Degree Sequence of Graph G 题解
Problem Description Wang Haiyang is a strong and optimistic Chinese youngster. Although born and bro ...
- 【Havel 定理】Degree Sequence of Graph G
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=2454 [别人博客粘贴过来的] 博客地址:https://www.cnblogs.com/debug ...
- HDU 1560 DNA sequence(DNA序列)
HDU 1560 DNA sequence(DNA序列) Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- HDU 6078 - Wavel Sequence | 2017 Multi-University Training Contest 4
/* HDU 6078 - Wavel Sequence [ DP ] | 2017 Multi-University Training Contest 4 题意: 给定 a[N], b[M] 要求满 ...
- HDU 5860 Death Sequence(死亡序列)
p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...
随机推荐
- 在Activity中为什么要用managedQuery()
刚開始接触android的时候,每次用数据库都会犹豫使用哪种方式,一种是getContentResolver().query(...),还有一种是managedQuery(...),后来习惯了使用前一 ...
- ORACLE中%TYPE和%ROWTYPE的使用
1 %TYPE说明 为了使一个变量的数据类型与还有一个已经定义了的变量(尤其是表的某一列)的数据类型相一致,Oracle提供了%TYPE定义方式.当被參照的那个变量的数据类型改变了之后,这个新定 ...
- .Net程序猿乐Android开发---(4)注册页面布局
接下来我们介绍的登陆页面布局,在本节中,我们看一下注册页面布局,页面布局大同小异,来一起熟悉下基本控件的使用方法. 效果图: 1.加入注冊页面 右键选中layout目录,加入注冊页面.例如以下图 点击 ...
- 《windows核心编程系列》十八谈谈windows钩子
windows应用程序是基于消息驱动的.各种应用程序对各种消息作出响应从而实现各种功能. windows钩子是windows消息处理机制的一个监视点,通过安装钩子能够达到监视指定窗体某种类型的消息的功 ...
- Android.mk编译.apk .so .jar .a第三方.apk .so .jar .a的方法
一.编译一个简单的APK LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # Build all java files in the java s ...
- c++map按value排序--将map的pair对保存到vector中,然后写比较仿函数+sort完成排序过程。
map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行 ...
- linux yum命令
1 安装yum install 全部安装yum install package1 安装指定的安装包package1yum groupinsall group1 安装程序组group1 2 更新和升级y ...
- 设计模式初探3——装饰者模式(Decorator Pattern)
装饰者模式:动态地将责任附加到对象上.若要扩展功能,装饰者提供了比继承更有弹性的替代方案. 适用范围: 1. 须要扩展一个类的功能.或给一个类加入附加职责. 2. 须要动态的给一个对象加入功能,这些功 ...
- 64地点 Windows 8/7 根据系统 32地点PLSQL 耦合 64 地点 Oracle 11g
64地点 Windows 8/7 根据系统 32地点PL/SQL 耦合 64 地点 Oracle 11g 说明:安装后Oracle的 oci.dll 是64位的,而32位应用程序 PL/SQL ...
- 初窥Linux 之 文件权限
一.用户与用户组 为了更好地理解文件权限,我们需要先有用户和用户组的概念.因为在Linux里面,任何一个文件都具有“User(用户).Group(用户组)及Others(其他用户)”3种身份的个别权限 ...