HDU 2454 Degree Sequence of Graph G——可简单图化&&Heavel定理

题意

给你一个度序列,问能否构成一个简单图。

分析

对于可图化,只要满足度数之和是偶数,即满足握手定理。

对于可简单图化,就是Heavel定理了。

Heavel定理:把度序列排成不增序,即 $deg[1] \geq deg[2] \geq ... \geq deg[V]$,则 $deg$ 可简单图化当且仅当 ${deg}' = \{deg[2]-1, deg[3]-1,...,deg[deg[1]+1]-1,...,deg[v] \}$ 可简单图化。

简单地说,把 $deg$ 从大到小排序后,找出度最大的点(设度为$d$),将它与度次大的 $d$ 的点连边,然后这个点就可以不管了。一直重复这个过程,直到用完所有的点。如果中间出现负度或剩下节点数小于当前节点的度数,则说明不可简单图化。(其实还是在运用握手定理)

#include<bits/stdc++.h>
using namespace std;

const int maxn = 1000 + 10;
int n, a[maxn];

int  main()
{
    int T;
    scanf("%d", &T);
    while(T--)
    {
        scanf("%d", &n);
        for(int i = 0;i < n;i++) scanf("%d", &a[i]);
        bool flag = false;
        for(int i = 0;i < n;i++)
        {
            sort(a+i, a+n, greater<int>());
            if(a[i] < 0 || a[i] > n-1-i)
            {
                flag = true;
                break;
            }
            for(int j = 1;j <= a[i];j++)  a[i+j]--;
        }
        if(flag)  printf("no\n");
        else  printf("yes\n");
    }
    return 0;
}

 

 

 

 

参考链接:

1. https://blog.csdn.net/Yasola/article/details/77862481

2. https://blog.csdn.net/shuangde800/article/details/7857246

转载于:https://www.cnblogs.com/lfri/p/11334110.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值