Frogs' Neighborhood(POJ1659+Havel-Hakimi定理)
题目链接:http://poj.org/problem?id=1659
题目:


题意:根据他给你的每个点的度数构造一张无向图。
思路:自己WA了几发(好菜啊……)后看到discuss才知道这个要用Havel-Hakimi定理,就跑去搜,这个定理很好理解,想了解的看官请点击链接:http://blog.51cto.com/sbp810050504/883904。
代码实现如下:
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <cmath>
#include <bitset>
#include <cstdio>
#include <string>
#include <vector>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std; typedef long long ll;
typedef pair<ll, ll> pll;
typedef pair<ll, int> pli;
typedef pair<int, ll> pil;;
typedef pair<int, int> pii;
typedef unsigned long long ull; #define lson i<<1
#define rson i<<1|1
#define bug printf("*********\n");
#define FIN freopen("D://code//in.txt", "r", stdin);
#define debug(x) cout<<"["<<x<<"]" <<endl;
#define IO ios::sync_with_stdio(false),cin.tie(0); const double eps = 1e-;
const int mod = ;
const int maxn = 1e6 + ;
const double pi = acos(-);
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f; int t, n;
int mp[][]; struct node {
int id, w;
bool operator < (const node& x) const {
return w > x.w;
}
}a[]; int main() {
//FIN;
scanf("%d", &t);
for(int icase = ; icase <= t; icase++) {
if(icase != ) printf("\n");
memset(mp, , sizeof(mp));
scanf("%d", &n);
for(int i = ; i <= n; i++) {
scanf("%d", &a[i].w);
a[i].id = i;
}
int flag = ;
for(int i = ; i <= n; i++) {
sort(a + , a + n + );
for(int j = ; j <= a[].w; j++) {
a[j+].w--;
mp[a[].id][a[j+].id] = mp[a[j+].id][a[].id] = ;
}
a[].w = ;
for(int j = ; j <= n; j++) {
if(a[j].w < ) {
flag = ;
break;
}
}
if(!flag) break;
}
if(!flag) puts("NO");
else {
puts("YES");
for(int i = ; i <= n; i++) {
for(int j = ; j <= n; j++) {
printf("%d%c", mp[i][j], j == n ? '\n' : ' ');
}
}
}
}
return ;
}
Frogs' Neighborhood(POJ1659+Havel-Hakimi定理)的更多相关文章
- POJ1659 Frogs' Neighborhood(Havel–Hakimi定理)
		题意 题目链接 \(T\)组数据,给出\(n\)个点的度数,问是否可以构造出一个简单图 Sol Havel–Hakimi定理: 给定一串有限多个非负整数组成的序列,是否存在一个简单图使得其度数列恰为这 ... 
- POJ1659 Frogs' Neighborhood(Havel定理)
		给一个无向图的度序列判定是否可图化,并求方案: 可图化的判定:d1+d2+……dn=0(mod 2).关于具体图的构造,我们可以简单地把奇数度的点配对,剩下的全部搞成自环. 可简单图化的判定(Have ... 
- POJ 1659 Frogs' Neighborhood(可图性判定—Havel-Hakimi定理)【超详解】
		Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 9897 Accepted: 41 ... 
- POJ1659 Frogs' Neighborhood(青蛙的邻居) Havel-Hakimi定理
		Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 8729 Accepted: 36 ... 
- POJ 1659 Frogs' Neighborhood(Havel-Hakimi定理)
		题目链接: 传送门 Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Description 未名湖附近共有N个大小湖泊L ... 
- POJ 1659 Frogs' Neighborhood  (Havel--Hakimi定理)
		Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 10545 Accepted: 4 ... 
- poj1659 Frogs' Neighborhood
		Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 10239 Accepted: 4 ... 
- 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 ... 
- Frogs' Neighborhood
		Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 7920 Accepted: 33 ... 
随机推荐
- FromHandle临时对象一探究竟
			我们在调用CWnd::GetDlgItem()函数时,MSDN告诉我们:The returned pointer may be temporary and should not be stored f ... 
- TCP系列04—连接管理—3、TCP连接的半打开和半关闭
			在前面部分我们我们分别介绍了三次握手.四次挥手.同时打开和同时关闭,TCP连接还有两种场景分别是半打开(Half-Open)连接和半关闭(Half-Close)连接.TCP是一个全双工(Full-Du ... 
- Scala快速入门-基础
			HelloWorld 从HelloWorld开始,使用scala IDE编辑器. 新建scala project 新建scala object 编写HelloWorld run as scala ap ... 
- C# Winform防止闪频和再次运行
			其实想实现只允许运行一个实例很简单,就是从program的入口函数入手.有两种情况: 第一种,用户运行第二个的时候给一个提示: using System; using System.Collectio ... 
- Python ZKPython 安装
			1.由于python客户端依赖c的客户端所以要先安装c版本的客户端cd zookeeper-3.4.5/src/c./configuremake make install 2.下载python扩展包, ... 
- 简介Kafka Streams
			本文从以下几个方面介绍Kafka Streams: 一. Kafka Streams 背景 二. Kafka Streams 架构 三. Kafka Streams 并行模型 四. Kafka Str ... 
- AppDomain.CurrentDomain.AssemblyResolve
			AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); 参 ... 
- ifstat查看网络流量的原理
			ifstat查看网卡流量的原理:读的是哪个/proc/ 接口啊 同diskIO一样,网络的IO也同样有统计计数的,是/proc/net/dev一个典型的输出就是这个样子的: root@station6 ... 
- 使用 ECS 实例创建 FTP 站点 linux
			本文只做记载过程和问题,并不详细 官方教程走一遍 https://help.aliyun.com/document_detail/51998.html#h2-linux-ftp-2 值得注意的是步骤二 ... 
- OpenStack Queens版本Horizon定制化开发
			工具环境 1.VMware workstation 12+: 2.Ubuntu系统+Linux Pycharm: 3.OpenStack Queens版本Horizon代码: 问题及解决 1.项目代码 ... 
