hdu 2454 Degree Sequence of Graph G(可简单图化判定)
•Havel-Hakimi定理:
给定一个非负整数序列{d1,d2,...dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化。
进一步,若图为简单图,则称此序列可简单图化。
定理描述:
由非负整数组成的有限非递增序列,S={d1,d2,d3...dn},当且仅当S1={d2-1,d3-1...d(d1+1),d(d1+2)......dn}也是可图的,
也就是说,序列S1也是由非负整数组成的有限非递增序列,S1是由S的删除第一个元素d1之后的前d1个元素分别减一后得到的序列。
实例:
判断 4 4 3 3 2 是否可图化
首先按非升序排列 4 4 3 3 2
删除4,然后把前4大的数-1 变为:3 2 2 1
然后删除3,把前3大的数-1 变为:1 1 0
删除1,把前1大的数删除 变为:1 0
删除1,把前1大的数删除 变为: 0
所以是可图化的
判断 5 4 5 2 3 1 是否可图化
首先按非升序排列 5 5 4 3 2 1
删除5,然后把前5大的数-1 变为:4 3 2 1 0
然后删除4,把前4大的数-1 变为: 2 1 0 -1
出现了负数,不可图化
判断 9 4 5 2 3 1 是否可图化
首先按非升序排列 9 5 4 3 2 1
删除9,然后把前9大的数-1 ,但数不够前9大,
也就是会出现负数
不可图化
•代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll a[];
int n;
bool Slove()
{
for(int i=;i<n;++i)
{
sort(a+i,a+n,greater<int>());//非增序排列
if(a[i]==)
return true;
if(i+a[i]>=n) //不存在前a[i]大个数
return false;
for(int j=i+;j<=i+a[i];++j)//前a[i]的数大-1
{
a[j]--;
if(a[j] < )
return false;
}
}
} int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
ll sum=;
for(int i=;i<n;i++)
{
scanf("%lld",a+i);
sum+=a[i];
} if(sum%)
{
puts("no");
continue;
} if(Slove())
puts("yes");
else
puts("no");
}
}
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 (推断简单图)
///已知各点的度,推断是否为一个简单图 #include<stdio.h> #include<algorithm> #include<string.h> usin ...
- 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 个非负整数列,判断这个序列是否为可简单图化的: •知识支持 握手定理:在任何无向图中,所有顶点的度 ...
- 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 ...
随机推荐
- LeetCode21 Merge Two Sorted Lists
题意: Merge two sorted linked lists and return it as a new list. The new list should be made by splici ...
- JAVA高级--java泛型
类型的参数化 泛型类可以同时设置多个参数 泛型类可以继承泛型类 泛型类可以实现泛型接口 示例--泛型类 package com.date; public class GenericDemo { pub ...
- Oracle安装 卸载 和常见问题
Oracle的安装 全局数据库名:orcl 口令:orcl 或者以第三方工具SQLplus为例 系统用户:sys 和 system 练习账户:scott (密码:tiger) 登录账户为:sy ...
- jquery on事件
可以给后添加的动态元素绑定事件
- 基于日志服务的GrowthHacking(1):数据埋点和采集(APP、Web、邮件、短信、二维码埋点技术)
数据质量决定运营分析的质量 在上文中,我们介绍了GrowthHacking的整体架构,其中数据采集是整个数据分析的基础,只有有了数据,才能进行有价值的分析:只有高质量的数据,才能驱动高质量的运营分析. ...
- inflate用一个XML源填充view. LayoutInflater
java.lang.Object android.view.LayoutInflater This class is used to instantiate layout XML file i ...
- 51nod 1686 第K大区间【离散化+二分】
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1686 题意: 定义一个区间的值为其众数出现的次数. 现给出n ...
- Gym - 101480D_Digit Division
题意:输入n,m,将n分段,每一段都可以被m整除,有多少种方法. 题解:找到n最多可以分成多少段,1段1中分法,2段2中分法,3段4种分法--计算可知若有x段则2^x-1种分法. 注意:如果n无法被m ...
- Data Flow-File Read-网络距离
- 如何用phpmyadmin导入大容量.sql文件,直接使用cmd命令进行导入
很多使用php+mysql建站的站长朋友们,经常要用到phpMyAdmin数据库管理工具备份和恢复数据库,当站点运行很久的时候,MySQL数据库会非常大,当站点碰到问题时,需要使用phpMyAdmin ...