【Havel-Hakimi定理】PKU-1659-Frogs' Neighborhood

原创 2012年03月22日 09:36:59

1,Havel-Hakimi定理主要用来判定一个给定的序列是否是可图的。

2,首先介绍一下度序列:若把图 G 所有顶点的度数排成一个序列 S,则称 S 为图 G 的度序列。

3,一个非负整数组成的有限序列如果是某个无向图的序列,则称该序列是可图的。

4,判定过程:(1)对当前数列排序,使其呈递减,(2)从S【2】开始对其后S【1】个数字-1,(3)一直循环直到当前序列出现负数(即不是可图的情况)或者当前序列全为0 (可图)时退出。

5,举例:序列S:7,7,4,3,3,3,2,1  删除序列S的首项 7 ,对其后的7项每项减1,得到:6,3,2,2,2,1,0,继续删除序列的首项6,对其后的6项每项减1,得到:2,1,1,1,0,-1,到这一步出现了负数,因此该序列是不可图的。

这题是很裸的模板题……

题目

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct node
{
    int de,id;
}v[15];
bool cmp(node x,node y)
{
    return x.de>y.de;
}
int main()
{
    //freopen("a.txt","r",stdin);
    int t;int n;
    scanf("%d",&t);
    while(t--)
    {
        int n;
        scanf("%d",&n);
        int de[15];
        for(int i=0;i<n;i++)
        {
            scanf("%d",&v[i].de);
            v[i].id=i;
        }
        int flag=0;
        int map[15][15];
        memset(map,0,sizeof(map));
        for(int i=0;i<n;i++)
        {
            sort(v+i,v+n,cmp);
            for(int j=i+1;j<i+1+v[i].de;j++)
            {
                v[j].de--;
                if(v[j].de<0)
                {
                    flag=1;
                    break;
                }
                map[v[i].id][v[j].id]=map[v[j].id][v[i].id]=1;
            }
            if(flag)break;
        }
        printf("%s\n",flag?"NO":"YES");
        if(!flag)
        {
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<n;j++)
                {
                    if(j)printf(" ");
                    printf("%d",map[i][j]);
                }
                printf("\n");
            }
        }
        printf("\n");
    }
    return 0;
}


相关文章推荐

poj1659 Frogs' Neighborhood (Havel-Hakimi定理可图化判定)

Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 8667   Accept...

POJ 1659 Frogs' Neighborhood Havel-Hakimi定理

U Description 未名湖附近共有N个大小湖泊L1, L2, ..., Ln(其中包括未名湖),每个湖泊Li里住着一只青蛙Fi(1 ≤ i ≤ N)。如果湖泊Li和Lj之间有水路相连,...

POJ 1659 Frogs' Neighborhood (Havel-Hakimi 定理)图论

链接:http://poj.org/problem?id=1659 Description 未名湖附近共有N个大小湖泊L1, L2, ..., Ln(其中包括未名湖),每个湖泊Li里住着一...

POJ 1659 Frogs' Neighborhood (Havel-Hakimi定理 + 贪心)

原题链接 一、题目描述 Description 未名湖附近共有N个大小湖泊L1, L2, ..., Ln(其中包括未名湖),每个湖泊Li里住着一只青蛙Fi(1 ≤ i ≤ N)。如果湖泊...

POJ--1659--Frogs' Neighborhood【Havel-Hakimi定理构图】

链接:http://poj.org/problem?id=1659 题意:有n个湖泊,如果湖泊A和湖泊B之间有水路连接,则称他们互为邻居,现给出n个湖泊的邻居个数,如果他们可以构成一个图则输出YES和...
  • zzzz40
  • zzzz40
  • 2014年07月26日 14:49
  • 661

POJ1659 Frogs' Neighborhood(Havel-Hakimi 定理,判断序列可图)

度序列(degree sequence):若把图 G所有顶点的度数排成一个序列 s,则称 s为图 G的度序 列。 序列是可图的(graphic):一个非负整数组成的有限序列如果是某个无向图的度序列,...

poj1659 Frogs' Neighborhood(Havel-Hakimi定理)

Frogs' NeighborhoodTime Limit: 5000MS Memory Limit: 10000KTotal Submissions: 3471 Accepted: 1478 Spe...

POJ 1659-Frogs' Neighborhood(Havel-Hakimi定理-度序列构图)

Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 928...
  • MIKASA3
  • MIKASA3
  • 2016年07月28日 18:44
  • 173

PKU1659(Frogs' Neighborhood)-简单图的判定+构造,Havel定理

简单图的判定+构造,Havel定理
  • Jarily
  • Jarily
  • 2013年09月25日 17:03
  • 1472

Havel-Hakimi 度序列判断无向图是否可图 Poj 1659 Frogs' Neighborhood

南京现场赛遇到的知识点,旁边北邮队伍秒过,我们这边三人大眼瞪小眼。。。赛后证明最后队友思路大方向没错,只是判断是否存在多种构图方式时有问题。 以下摘自百度知道: Havel-Hakimi算法用来判...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Havel-Hakimi定理】PKU-1659-Frogs' Neighborhood
举报原因:
原因补充:

(最多只允许输入30个字)