HDU 2454 Degree Sequence of Graph G(Havel-Hakimi定理,图论基础)

来源:互联网 发布:淘宝代收货要钱吗 编辑:程序博客网 时间:2024/06/16 22:46
题意:判断是否可以构成图,简单的Havel-Hakimi定理的运用)
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int maxm=1005;struct node{    int degree;    int index;}v[maxm];int cmp(node p,node q){    return p.degree>q.degree;}int main(){    int t;    scanf("%d",&t);    while(t--)    {        int n;        scanf("%d",&n);        for(int i=0;i<n;i++)        {            scanf("%d",&v[i].degree);            v[i].index=i;        }        int ok=1;        for(int k1=0;k1<n;k1++)        {            sort(v,v+n,cmp);            int id=v[k1].degree;            int i=v[k1].index;            if(id>n-k1-1)            {                ok=0;                break;            }            for(int k2=1;k2<=id;k2++)            {                int j=v[k2+k1].index;                if(v[k2+k1].degree<=0)                {                    ok=0;                    break;                }                v[k1+k2].degree--;            }            if(!ok)            {                break;            }        }        if(ok)        {            printf("yes\n");        }        else        {            printf("no\n");        }    }    return 0;}

1 0
原创粉丝点击