poj-1659-Frogs Neighborhood-(图论-是否可图)

Frogs' Neighborhood
Time Limit: 5000MS   Memory Limit: 10000K
Total Submissions: 10018   Accepted: 4189   Special Judge

Description

未名湖附近共有N个大小湖泊L1L2, ..., Ln(其中包括未名湖),每个湖泊Li里住着一只青蛙Fi(1 ≤ i ≤ N)。如果湖泊LiLj之间有水路相连,则青蛙FiFj互称为邻居。现在已知每只青蛙的邻居数目x1x2, ..., xn,请你给出每两个湖泊之间的相连关系。

Input

第一行是测试数据的组数T(0 ≤ T ≤ 20)。每组数据包括两行,第一行是整数N(2 < N < 10),第二行是N个整数,x1x2,..., 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 NOYES
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

POJ Monthly--2004.05.15 Alcyone@pku
1659 Accepted 432K 0MS G++ 1055B 2017-09-16 10:13:08

在看图论的知识,一个序列是否可图。

可图: 一个非负整数的序列如果可以成为某个无向图的度序列,则该序列是可图的。

具体的算法思路和code来自--

参考来自:http://blog.csdn.net/makenothing/article/details/41308903

#include <cstdio>
#include <cstdlib>
#include <cstring> const int MAXN = 12; struct Node{int d, p;
};Node nd[MAXN];
int mp[MAXN][MAXN]; int cmp(const void *a, const void *b){Node* aa = (Node *)a; Node* bb = (Node *)b; return (bb->d - aa->d);
}int main(){freopen("in.txt", "r", stdin);  int TC, n; scanf("%d", &TC); while(TC--){scanf("%d", &n); for(int i=0; i<n; ++i){scanf("%d", &nd[i].d); nd[i].p = i; }bool flag = true; memset(mp, 0, sizeof(mp)); for(int i=0; i<n; ++i){qsort(nd + i, n - i, sizeof(nd[0]), cmp); if(nd[i].d + i >= n){flag = false; }if(!flag){ break; } for(int j=i+1; j<=i+nd[i].d; ++j){--nd[j].d; if(nd[j].d < 0){flag = false; break; }mp[ nd[i].p ][ nd[j].p ] =  mp[ nd[j].p ][ nd[i].p ] = 1; }}if(flag){printf("YES\n");for(int i=0; i<n; ++i){for(int j=0; j<n-1; ++j){printf("%d ", mp[i][j] );}printf("%d\n", mp[i][n-1] );}}else{printf("NO\n");}if(TC != 0){printf("\n");}}return 0;
}

  

转载于:https://www.cnblogs.com/zhang-yd/p/7530426.html

poj-1659-Frogs Neighborhood-(图论-是否可图)相关推荐

  1. POJ 1659 Frogs‘ Neighborhood (Havel 定理)

    Havel 定理: 序列的可图:给出一个 由非负整数组成的序列,如果是某个无向图的度序列,则称该序列是可图的. 而 Havel 定理,就是判断序列的可图的方法.先按度数从大到小排序, 每次处理完度数一 ...

  2. POJ 1659 Frogs#39; Neighborhood(度序列组成)

    意甲冠军  中国 依据Havel-Hakimi定理构图即可咯  先把顶点按度数从大到小排序  可图的话  度数大的顶点与它后面的度数个顶点相连肯定是满足的  出现了-1就说明不可图了 #include ...

  3. POJ1659 Frogs' Neighborhood(Havel定理)

    题目: Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 9932   Accepted ...

  4. POJ 1659【Havel-Hakimi 定理】

    Havel-Hakimi 定理: 一个非负整数组成的有限序列如果是某个无向图的序列,则称该序列是可图的. 例如,判断序列s: 7, 7, 4, 3, 3, 3, 2, 1 是否是可图的. 删除序列s ...

  5. 【图论——第一讲】图论基础以及图的储存

    ฅ(๑˙o˙๑)ฅ 大家好, 欢迎大家光临我的博客:面向阿尼亚学习算法学习笔记系列持续更新中~ 文章目录 一.前言 推荐大家一个图形编译器[很好用](https://csacademy.com/app ...

  6. POJ - Frogs' Neighborhood(Havel-Hakimi)

    题目链接:http://poj.org/problem?id=1659 Time Limit: 5000MS   Memory Limit: 10000K Description 未名湖附近共有N个大 ...

  7. poj 1659 Havel-hakimi定理

    题目链接 http://poj.org/problem?id=1659 题意 已知所有顶点的入度,现在问这些顶点是否能构成一张图,如果可以,输出它的邻接矩阵. 题解 Havel-hakimi定理是一个 ...

  8. 【图论专题】图的存储与遍历(最小环、所有环的大小)

    整理的算法模板合集: ACM模板 目录 Part 8.1 图的存储与遍历 P2661 信息传递(最小环) P2921 Trick or Treat on the Farm(求所有环的大小) 题单链接: ...

  9. 【数据结构与算法】图论基础与图存储结构

    前言 由于后续更新好几篇文章都涉及到 图 这种数据结构,因此打算先普及一下 图 的相关理论支持,如果后面的相关内容有些点不太容易理解,可以查阅此篇文章.本文不建议一口气阅读完毕,可以先浏览一遍,在后续 ...

  10. POJ 2987 Firing(最大权闭合图)

    [题目链接] http://poj.org/problem?id=2987 [题目大意] 为了使得公司效率最高,因此需要进行裁员, 裁去不同的人员有不同的效率提升效果,当然也有可能是负的效果, 如果裁 ...

最新文章

  1. Ajax-简单的HelloWorld实例,使用了XMLHttpRequest(two)
  2. 嵌入式c语言检测键盘,【精华整理】C语言嵌入式系统编程修炼--键盘操作篇
  3. 我的Android进阶之旅------Android中高低API版本兼容使用@TargetApi或者@SuppressLint(NewApi)...
  4. 剑指offer——最小的K个数和数组中第K大的元素
  5. Spring 3.1配置文件和Tomcat配置
  6. Facebook 开源图像处理库 Spectrum,优化移动端图像生成
  7. python控制语句字符串截取_菜鸟python---流程控制语句
  8. [置顶] “非主流”Web容器之TomJetty之让服务动起来
  9. 带本信息论看《三体》——信息论课程论文
  10. n-3000系列串口服务器,串口转网络,网络转串口
  11. 【双清/双wipe】使用adb命令进行双清/双wipe
  12. 关于.Net的面试遐想
  13. 百度网盘html资源,百度网盘目录索引搭建教程:如何把百度网盘文件做成在线html目录...
  14. 经验:如何快速地写出格雷码
  15. 80行代码自己动手写一个表格拆分与合并小工具(文末附工具下载)
  16. WebServerException: Unable to start embedded Tomcat
  17. 动词变名词的变化规则_动词变职业名词的规则
  18. 数据类型与堆栈内存练习数据类型检测
  19. 关于DBeaver stored procedure中print语句的内容看不见,smss可以的问题
  20. 关于 android 虚拟机显示在了界面里面,怎么把模拟器放到到android studio窗口外面这件事

热门文章

  1. AjaxJson笔记(1)
  2. 代码审计XSS 0day
  3. 在windows上编译apr等相关动态库
  4. 记录ishield遇到的问题的解决过程
  5. SQL经典面试题及答案
  6. python离线安装国内镜像OpenCV
  7. Faker库:一个数据造假的神库
  8. GitHub项目协作基本步骤
  9. dojo中的dojo/dom-attr
  10. Scala学习之特殊符号,及函数