POJ 1659
题意: 给你一个数列, 判断是否可以构成一个图, 可以则输出 构成图的一种方式
构图根据 Havel-Hakimi定理来构图
(在排序的时候注意 节点下标会变化, 故用结构体)
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 50;
int Map[maxn][maxn];
struct Node
{
int val, pos;
bool operator < (const Node a) const
{
return val > a.val;
}
}Num[maxn];
int main()
{
int T, N;
cin >> T;
while(T--)
{
bool Jug = true;
cin >> N;
memset(Map,0,sizeof(Map));
for(int i = 0; i < N; ++i)
{
cin >> Num[i].val;
Num[i].pos = i;
} for(int i = 0; i < N && Jug; ++i)
{
sort(Num+i,Num+N);
/////////////
/*for(int k = 0; k < N; ++k)
{
if(k) cout << " ";
cout << Num[k].val;
}
cout << endl;*/
//////////////
int Be = Num[i].pos;
if(Num[i].val > N-i-1) Jug = false;
for(int j = 1; j <= Num[i].val && Jug; ++j)
{
int Ed = Num[i+j].pos;
Num[i+j].val--;
if(Num[i+j].val < 0) Jug = false;
else Map[Be][Ed] = Map[Ed][Be] = 1;
}
}
if(!Jug) {
puts("NO\n");
continue;
}
puts("YES");
for(int i = 0; i < N; ++i)
{
for(int j = 0; j < N; ++j)
{
if(j) cout << " ";
cout << Map[i][j];
}
cout << endl;
}
cout << endl;
}
return 0;
}
POJ 1659的更多相关文章
- poj 1659 Frogs' Neighborhood 度序列可图化 贪心
题意: 对一个无向图给出一个度序列,问他是否可简单图化. 分析: 依据Havel定理,直接贪心就可以. 代码: //poj 1659 //sep9 #include <iostream> ...
- poj 1659 Frog's Neighborhood
未名湖附近共有N个大小湖泊L1, L2, -, Ln(其中包括未名湖),每个湖泊Li里住着一只青蛙Fi(1 ≤ i ≤ N).如果湖泊Li和Lj之间有水路相连,则青蛙Fi和Fj互称为邻居.现在已知每只 ...
- Frogs‘ Neighborhood(POJ 1659 C/C++)
poj 1659 Description 未名湖附近共有N个大小湖泊L1, L2, ..., Ln(其中包括未名湖),每个湖泊Li里住着一只青蛙Fi(1 ≤ i ≤ N).如果湖泊Li和Lj之间有水路 ...
- 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 (贪心 + 判断度数序列是否可图)
Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 6076 Accepted: 26 ...
- POJ 1659 Frogs' Neighborhood(可图性判定—Havel-Hakimi定理)【超详解】
Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 9897 Accepted: 41 ...
- poj 1659(havel算法)
题目链接:http://poj.org/problem?id=1659 思路: havel算法的应用: (1)对序列从大到小进行排序. (2)设最大的度数为 t ,把最大的度数置0,然后把最大度数后 ...
- POJ 1659 Frogs' Neighborhood(度序列组成)
意甲冠军 中国 依据Havel-Hakimi定理构图即可咯 先把顶点按度数从大到小排序 可图的话 度数大的顶点与它后面的度数个顶点相连肯定是满足的 出现了-1就说明不可图了 #include ...
- Poj 1659.Frogs' Neighborhood 题解
Description 未名湖附近共有N个大小湖泊L1, L2, ..., Ln(其中包括未名湖),每个湖泊Li里住着一只青蛙Fi(1 ≤ i ≤ N).如果湖泊Li和Lj之间有水路相连,则青蛙Fi和 ...
- POJ 1659 Frogs' Neighborhood(Havel-Hakimi定理)
题目链接: 传送门 Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Description 未名湖附近共有N个大小湖泊L ...
随机推荐
- 【由浅入深理解java集合】(五)——集合 Map
前面已经介绍完了Collection接口下的集合实现类,今天我们来介绍Map接口下的两个重要的集合实现类HashMap,TreeMap.关于Map的一些通用介绍,可以参考第一篇文章.由于Map与Lis ...
- 微信小程序ext_json示例
{ "template_id": 0, "ext_json": "{\"extEnable\": true, \"ext ...
- 【七】zuul路由网关
一.zuul是什么?zuul 包含以下两个最主要的功能:1.路由功能: 负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础.2.过滤器功能: 则负责对请求的处理过程进行干预,是实现请 ...
- C++向量 vector动态数组
需要包含头文件, #include <vector> using namespace std; vector 容器与数组相比其优点在于它能够根据需要随时自动调整自身的大小以便容下所 ...
- ansible学习笔记二
Ad-Hoc命令: 所谓Ad-Hoc,简而言之是"临时命令",英文中作为形容词有"特别的,临时"的含义.Ad-Hoc只是官方对Ansible命令的一种称谓. 从 ...
- 第20月第14天 objc_getAssociatedObject _cmd
1. - (CustomNavigationControllerDelegate *)customDelegate { return objc_getAssociatedObject(self, _c ...
- css3动画transition animation
CSS动画简介 transition animation transition过渡:css3通过transitions属性引入时间概念,通过开始.结束状态自动计算中间状态,实现状态改变的过渡效果 ...
- (1)Java数据结构--图文并茂-分析优缺点
转:常见Java数据结构&优缺点 - /画家/ - 博客园http://www.cnblogs.com/earl-yongchang/p/5639161.html 图片也是引用过来的,没有重新 ...
- MySQL创建数据库指定字符集
CREATE DATABASE IF NOT EXISTS dbname DEFAULT CHARSET utf8;
- 2017-2018-2 20165221 实验三《敏捷开发与XP实践》实验报告
实验报告封面 姓名:谭笑 学号:20165221 班级:1652班 实验名称: JAVA--敏捷开发与XP实践 指导老师:娄嘉鹏 试验时间:15:35--17:15 实验性质:选修 实验组次:21 实 ...