POJ 1659 Frogs#39; Neighborhood(度序列组成)
意甲冠军 中国
依据Havel-Hakimi定理构图即可咯 先把顶点按度数从大到小排序 可图的话 度数大的顶点与它后面的度数个顶点相连肯定是满足的 出现了-1就说明不可图了
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 20;
int mat[N][N], ord[N];bool cmp(int i, int j)
{return mat[i][0] > mat[j][0];
}int main()
{int cas, i, j, k, t, n;scanf("%d", &cas);while(cas--){memset(mat, 0, sizeof(mat));scanf("%d", &n);for(i = 1; i <= n; ++i){scanf("%d", &mat[i][0]);ord[i] = i;}for(i = 1; i <= n; ++i){sort(ord + i, ord + n + 1, cmp);t = ord[i];if(mat[t][0] < 0) break;for(j = 1; j <= mat[t][0]; ++j){k = ord[i + j];mat[t][k] = mat[k][t] = 1;--mat[k][0];}}if(i <= n) printf("NO\n");else{printf("YES\n");for(i = 1; i <= n; ++i){for(int j = 1; j <= n; ++j)printf("%d ", mat[i][j]);printf("\n");}}if(cas) printf("\n");}return 0;
}
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 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 1659 Frogs#39; Neighborhood(度序列组成)相关推荐
- POJ 1659 Frogs‘ Neighborhood (Havel 定理)
Havel 定理: 序列的可图:给出一个 由非负整数组成的序列,如果是某个无向图的度序列,则称该序列是可图的. 而 Havel 定理,就是判断序列的可图的方法.先按度数从大到小排序, 每次处理完度数一 ...
- 图论-度序列可图性判断(Havel-Hakimi定理)
0.可图:一个非负整数组成的序列如果是某个无向图的度序列,则该序列是可图的. 1.度序列:Sequence Degree,若把图G所有顶点的度数排成一个序列,责成该序列为图G的一个序列.该序列可以是非 ...
- Havel—Hakimi定理(度序列)
对于图的所有顶点,我们可以统计出每个顶点的度.像这样的一串数字,我们称之为:度序列.那么反过来,给定一个序列,能否判断这个序列是可图的呢?这里有一个定理:Havel-Hakimi定理可以用来判定一个序 ...
- 图的度序列:Havel定理
给定一个非负整数序列{d1,d2,...dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化.进一步,若图为简单图,则称此序列可简单图化. 可图化的判定比较简单:d1+d2+.. ...
- Havel-Hakimi定理(判断一个度序列是否可图)
1,Havel-Hakimi定理主要用来判定一个给定的序列是否是可图的. 2,首先介绍一下度序列:若把图 G 所有顶点的度数排成一个序列 S,则称 S 为图 G 的度序列. 3,一个非负整数组成的有限 ...
- 图论(2)完全图,顶点的度与度序列
目录 一.完全图 偶图(双图或二部图) (2)完全偶图 简单图的补图 自补图 二.顶点的度与图的度序列 顶点的度 图的度序列(注意与图序列的区别) 图序列 图的频序列及其性质 例题 一.完全图.偶图与 ...
- POJ 1659【Havel-Hakimi 定理】
Havel-Hakimi 定理: 一个非负整数组成的有限序列如果是某个无向图的序列,则称该序列是可图的. 例如,判断序列s: 7, 7, 4, 3, 3, 3, 2, 1 是否是可图的. 删除序列s ...
- poj 1659 Havel-hakimi定理
题目链接 http://poj.org/problem?id=1659 题意 已知所有顶点的入度,现在问这些顶点是否能构成一张图,如果可以,输出它的邻接矩阵. 题解 Havel-hakimi定理是一个 ...
- poj 1681 Painter#39;s Problem(高斯消元)
http://poj.org/problem? id=1681 求最少经过的步数使得输入的矩阵全变为y. 思路:高斯消元求出自由变元.然后枚举自由变元,求出最优值. 注意依据自由变元求其它解及求最优值 ...
最新文章
- Android第三十一期 - 市面上所有引导页的效果
- BBC称中国人加班时间远超欧美:工作效率未必高
- 单变量线性回归程序实现
- Java System类
- Maven仓库搭建(二):GitHub、又拍云、七牛云存储
- linux下时间同步的两种方法分享
- JDK1.8中String类的intern()方法学习
- 说说.NET中忽视的方法
- Codeforces 319C DP 斜率优化
- C#学习笔记第一篇——类进阶
- 解决tsc.exe 已退出 代码为 1
- 【蓝牙】什么?还不知道蓝牙协议栈开源了?
- 腾讯电脑管家卸载后的残留信息有哪些
- tibco linux安装手册,Tibco 产品安装手册.doc
- Hi3531D加载TVP7002驱动模块——新手全过程记录
- Excel如何制作人形条形图
- NEC Programming Contest 2021(AtCoder Beginner Contest 229) B - Hard Calculation
- 计算机网络- Internet是如何工作的
- 【装机必备】Win软件卸载工具
- Vue - Ant Design Vue 中 <a-select> 选择器组件,既可从下拉列表选择,又可输入手动输入文本(既可下拉选择又可自己输入)