HDOJ题目2454 Degree Sequence of Graph G(判断是否是简单图)
来源:互联网 发布:网上模拟钢琴软件 编辑:程序博客网 时间:2024/05/24 03:20
Degree Sequence of Graph G
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1811 Accepted Submission(s): 750
Problem Description
Wang Haiyang is a strong and optimistic Chinese youngster. Although born and brought up in the northern inland city Harbin, he has deep love and yearns for the boundless oceans. After graduation, he came to a coastal city and got a job in a marine transportation company. There, he held a position as a navigator in a freighter and began his new life.
The cargo vessel, Wang Haiyang worked on, sails among 6 ports between which exist 9 routes. At the first sight of his navigation chart, the 6 ports and 9 routes on it reminded him of Graph Theory that he studied in class at university. In the way that Leonhard Euler solved The Seven Bridges of Knoigsberg, Wang Haiyang regarded the navigation chart as a graph of Graph Theory. He considered the 6 ports as 6 nodes and 9 routes as 9 edges of the graph. The graph is illustrated as below.
According to Graph Theory, the number of edges related to a node is defined as Degree number of this node.
Wang Haiyang looked at the graph and thought, If arranged, the Degree numbers of all nodes of graph G can form such a sequence: 4, 4, 3,3,2,2, which is called the degree sequence of the graph. Of course, the degree sequence of any simple graph (according to Graph Theory, a graph without any parallel edge or ring is a simple graph) is a non-negative integer sequence?
Wang Haiyang is a thoughtful person and tends to think deeply over any scientific problem that grabs his interest. So as usual, he also gave this problem further thought, As we know, any a simple graph always corresponds with a non-negative integer sequence. But whether a non-negative integer sequence always corresponds with the degree sequence of a simple graph? That is, if given a non-negative integer sequence, are we sure that we can draw a simple graph according to it.?
Let's put forward such a definition: provided that a non-negative integer sequence is the degree sequence of a graph without any parallel edge or ring, that is, a simple graph, the sequence is draw-possible, otherwise, non-draw-possible. Now the problem faced with Wang Haiyang is how to test whether a non-negative integer sequence is draw-possible or not. Since Wang Haiyang hasn't studied Algorithm Design course, it is difficult for him to solve such a problem. Can you help him?
The cargo vessel, Wang Haiyang worked on, sails among 6 ports between which exist 9 routes. At the first sight of his navigation chart, the 6 ports and 9 routes on it reminded him of Graph Theory that he studied in class at university. In the way that Leonhard Euler solved The Seven Bridges of Knoigsberg, Wang Haiyang regarded the navigation chart as a graph of Graph Theory. He considered the 6 ports as 6 nodes and 9 routes as 9 edges of the graph. The graph is illustrated as below.
According to Graph Theory, the number of edges related to a node is defined as Degree number of this node.
Wang Haiyang looked at the graph and thought, If arranged, the Degree numbers of all nodes of graph G can form such a sequence: 4, 4, 3,3,2,2, which is called the degree sequence of the graph. Of course, the degree sequence of any simple graph (according to Graph Theory, a graph without any parallel edge or ring is a simple graph) is a non-negative integer sequence?
Wang Haiyang is a thoughtful person and tends to think deeply over any scientific problem that grabs his interest. So as usual, he also gave this problem further thought, As we know, any a simple graph always corresponds with a non-negative integer sequence. But whether a non-negative integer sequence always corresponds with the degree sequence of a simple graph? That is, if given a non-negative integer sequence, are we sure that we can draw a simple graph according to it.?
Let's put forward such a definition: provided that a non-negative integer sequence is the degree sequence of a graph without any parallel edge or ring, that is, a simple graph, the sequence is draw-possible, otherwise, non-draw-possible. Now the problem faced with Wang Haiyang is how to test whether a non-negative integer sequence is draw-possible or not. Since Wang Haiyang hasn't studied Algorithm Design course, it is difficult for him to solve such a problem. Can you help him?
Input
The first line of input contains an integer T, indicates the number of test cases. In each case, there are n+1 numbers; first is an integer n (n<1000), which indicates there are n integers in the sequence; then follow n integers, which indicate the numbers of the degree sequence.
Output
For each case, the answer should be "yes"or "no" indicating this case is "draw-possible" or "non-draw-possible"
Sample Input
26 4 4 3 3 2 24 2 1 1 1
Sample Output
yesno
Source
2008 Asia Regional Harbin
Recommend
gaojie | We have carefully selected several similar problems for you: 2448 2452 2451 2453 2455
ac代码
#include<stdio.h>#include<string.h>#include<stdlib.h>int cmp(const void *a,const void *b){return *(int *)b-*(int *)a;}int a[10010];int main(){int t;scanf("%d",&t);while(t--){int n,i,j,sum=0;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);sum+=a[i];}if(sum%2){printf("no\n");continue;}for(i=0;i<n;i++){if(a[i]>=n)break;}if(i<n){printf("no\n");continue;}int flag=0;for(i=0;i<n;i++){int cnt=0;qsort(a,n,sizeof(a[0]),cmp);for(j=1;j<n;j++){if(a[0]==cnt)break;a[j]--;cnt++;if(a[j]<0){flag=1;break;}}if(flag)break;if(cnt==0)continue;a[0]-=cnt;}if(flag){printf("no\n");continue;}for(i=0;i<n;i++){if(a[i])break;}if(i<n)printf("no\n");elseprintf("yes\n");}}
0 0
- HDOJ题目2454 Degree Sequence of Graph G(判断是否是简单图)
- hdu 2454 Degree Sequence of Graph G (判断简单图)
- HDU 2454 Degree Sequence of Graph G(Havel定理 判断简单图的存在)
- HDOJ2454(Degree Sequence of Graph G)(Havel-Hakimi定理判断所给序列是否可化成简单图)
- HDU 2454 Degree Sequence of Graph G (可简单图化的判定 havel定理)
- hdu 2454 Degree Sequence of Graph G
- hdu 2454 Degree Sequence of Graph G
- Degree Sequence of Graph G(Hdu_oj 2454)
- HDU 2454 Degree Sequence of Graph G(Heavel定理)
- HDU 2454 Degree Sequence of Graph G(Havel-Hakimi定理,图论基础)
- hdu2454 Degree Sequence of Graph G(havel定理)
- hdu2454 Degree Sequence of Graph G (Havel-Hakimi定理,可图化判定)
- hdu2454Degree Sequence of Graph G
- hdu2454Degree Sequence of Graph G
- HDOJ 题目5496 Beauty of Sequence(数学)
- UVa10720 ( Graph Construction)(判断是否可化为简单图)
- HDOJ 2444 - The Accomodation of Students 判断一个图是否是二分图.二分图的条件
- HDOJ 题目4034 Graph(逆向Floyd)
- UIStepper音量调节控件
- Java实现生产者,消费者问题
- BZOJ 3878 Ahoi2014 奇怪的计算器 线段树
- 项目管理
- 教你从防伪技术方面便钞票真伪
- HDOJ题目2454 Degree Sequence of Graph G(判断是否是简单图)
- 离散数学:Peano(皮亚诺) 算术
- Django 中数据库模型的使用
- 单例模式
- Using Reflection and Expression to get Property with better performance.
- 附MySQL的API接口:
- jvm Shallow heap & Retained heap
- win下memcache安装
- 前三位必须是大写字母的正则,长度限制5位