POJ 1659 Frogs' Neighborhood (Havel--Hakimi定理)
Time Limit: 5000MS | Memory Limit: 10000K | |||
Total Submissions: 10545 | Accepted: 4386 | 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
- 思路
http://www.cnblogs.com/wzjhoutai/p/6761606.html
这是一片不错的博客,详细介绍了Havel--Hakimi定理。
在执行删点的同时,把边连起来就行了.
代码
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- using namespace std;
- int mp[][];
- struct node
- {
- int id;
- int num;
- }a[];
- bool cmp(node x,node y)
- {
- return x.num>y.num;
- }
- int main()
- {
- int T;
- scanf("%d",&T);
- while(T--){
- memset(mp,,sizeof(mp));
- int n;
- scanf("%d",&n);
- for(int i=;i<n;i++){
- scanf("%d",&a[i].num);
- a[i].id=i+;
- }
- int tt=n;
- int flag=;
- for(int i=;i<n;i++){
- sort(a,a+n,cmp);
- if(a[].num<){flag=;break;}
- int t=a[].num;a[].num=;
- for(int j=;j<=t;j++){
- a[j].num--;if(a[j].num<){flag=;break;}
- mp[a[j].id][a[].id]=mp[a[].id][a[j].id]=;
- }
- if(flag){break;}
- tt--;
- }
- if(flag==){printf("NO\n\n");continue;}
- printf("YES\n");
- for(int i=;i<=n;i++){
- for(int j=;j<n;j++){
- printf("%d ",mp[i][j]);
- }
- printf("%d\n",mp[i][n]);
- }
- printf("\n");
- }
- }
POJ 1659 Frogs' Neighborhood (Havel--Hakimi定理)的更多相关文章
- POJ1659 Frogs' Neighborhood(Havel–Hakimi定理)
题意 题目链接 \(T\)组数据,给出\(n\)个点的度数,问是否可以构造出一个简单图 Sol Havel–Hakimi定理: 给定一串有限多个非负整数组成的序列,是否存在一个简单图使得其度数列恰为这 ...
- POJ 1659 Frogs' Neighborhood (Havel定理构造图)
题意:根据图的度数列构造图 分析:该题可根据Havel定理来构造图.Havel定理对可图化的判定: 把序列排成不增序,即d1>=d2>=……>=dn,则d可简单图化当且仅当d’={d ...
- POJ 1659 Frogs' Neighborhood(可图性判定—Havel-Hakimi定理)【超详解】
Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 9897 Accepted: 41 ...
- poj 1659 Frogs' Neighborhood (DFS)
http://poj.org/problem?id=1659 Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total S ...
- POJ 1659 Frogs' Neighborhood(Havel-Hakimi定理)
题目链接: 传送门 Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Description 未名湖附近共有N个大小湖泊L ...
- poj 1659 Frogs' Neighborhood (贪心 + 判断度数序列是否可图)
Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 6076 Accepted: 26 ...
- poj 1659 Frogs' Neighborhood( 青蛙的邻居)
Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 9639 Accepted: 40 ...
- poj 1659 Frogs' Neighborhood(出入度、可图定理)
题意:我们常根据无向边来计算每个节点的度,现在反过来了,已知每个节点的度,问是否可图,若可图,输出一种情况. 分析:这是一道定理题,只要知道可图定理,就是so easy了 可图定理:对每个节点的度从 ...
- poj 1659 Frogs' Neighborhood Havel-Hakimi定理 可简单图定理
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4098136.html 给定一个非负整数序列$D=\{d_1,d_2,...d_n\}$,若存 ...
随机推荐
- Java的hashCode和equals方法
当然健壮的代码,两个都重写那是最好. 用不到hashCode的, 也没有必要重写hashCode. 个人感觉. 哈希机制的Java集合类,例如 Hashtable, HashMap, HashSet ...
- CSAW 2016:Rock-100
ELF文件 拖进ida 震惊: 这一堆堆都是什么神仙函数呀!! f5看一下伪代码 可以看出来 其实看起来函数很多 但是真正管用的函数也就那么几个 如果sub_4017E6的值是0 那么就会输出flag ...
- SQL字段类型bit 查询时注意
sql 查询时 字段=1 或 字段=0 c# 里也是
- npm火速上手
npm,即node package manager,翻译过来就是“node包管理工具”.“node包”是啥呢?它就是jquery啦.bootstrap啦之类的各种版本. 1.npm的安装 第一步,下 ...
- jsp页面给字体加颜色
jsp页面给字体加颜色<span style="color:red">要加颜色的部分</span>
- codeforces749B
Parallelogram is Back CodeForces - 749B 已知平行四边形的三个顶点,求第四个顶点可能的位置.Input输入有三行,每行包括两个整数x和y ( - 1000 ≤ x ...
- 【数模】day06-数理统计I
数理统计. 以样本推断总体,进而用总体研究问题. 分两部分学习,第一部分是基础统计.参数估计.假设检验以及bootstrap方法. 1. 基础统计 假设有如下数据: 要做频数表.直方图.折线图.饼状图 ...
- BZOJ1208[HNOI2004]宠物收养场——treap
凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领 ...
- BZOJ3812 主旋律(状压dp+容斥原理)
设f[S]为S点集是SCC的方案数.考虑通过去掉不合法方案转移.可以枚举入度为0的SCC所含点集S',这样显然S^S'内部的边和由S'连向S^S'的边删还是不删任选.但是这样无法保证S'包含所有入度为 ...
- 实验九 在JSP中使用数据库
实验性质:验证性 实验学时: 1学时 实验地点: 一 .实验目的与要求 1. 掌握在JSP中使用数据库的方法. 2. 掌握JSP对数据库的基本操作:增.删.改.查. 二. 实验内容 1.JSP访问数据 ...