zoukankan      html  css  js  c++  java
  • poj 1659

    Havel算法的简单思想:

      (1)对序列从大到小排序

      (2)设最大的度数为t,把最大的度数置为0,然后(不包括自己)的t个度数分别减一,就是让第一个与后几个相连,

      (3)如果序列中出现了负数,证明无法构成。如果序列全为零,证明能构成跳出循环。

      4 4 3 3 2 2

    第二步后 0 3 2 2 1 2

    排序   3 2 2 2 1 0

    第三步后  0 1 1 1 1 0

    排序      1 1 1 1 0 0

    第二步后  0  0 1 1 0 0

    排序    1 1 0 0 0 0

    第二步后  0  0 0 0 0 0

    全零,能构成图,跳出!

    出现负数,直接跳出

    // 1659.cpp : 定义控制台应用程序的入口点。
    //

    #include
    "stdafx.h"

    #include
    <iostream>
    #include
    <algorithm>
    using namespace std;
    struct node
    {
    int ID;
    int num;
    };
    int cmp(node &c,node &d)
    {
    return c.num>d.num;
    }
    int main()
    {
    int testcase;
    cin
    >>testcase;
    bool flag;
    while(testcase--)
    {
    flag
    =true;
    int n;
    cin
    >>n;
    int a[15][15];
    node b[
    25];
    memset(a,
    0,15*15*sizeof(a[0][0]));
    for(int i=1;i<=n;i++){
    cin
    >>b[i].num;
    b[i].ID
    =i;
    }
    sort(b
    +1,b+n+1,cmp);
    //for(int i=1;i<=n;i++)
    // cout<<b[i].num<<endl;
    //getchar();
    /*if(b[1].num==0&&b[n].num==0){
    cout<<"NO"<<endl;
    cout<<endl;
    flag=false;
    continue;
    }
    */
    while(b[1].num!=0)
    {

    for(int i=2;i<b[1].num+2;i++)
    {
    b[i].num
    -=1;
    a[b[i].ID][b[
    1].ID]=1;
    a[b[
    1].ID][b[i].ID]=1;
    }
    b[
    1].num=0;
    sort(b
    +1,b+n+1,cmp);
    if(b[n].num<0){
    cout
    <<"NO"<<endl;
    flag
    =false;
    cout
    <<endl;
    break;
    }
    }
    if(flag==true)
    {
    cout
    <<"YES"<<endl;
    for(int i=1;i<=n;i++)
    {
    for(int j=1;j<=n;j++)
    {
    cout
    <<a[i][j]<<" ";

    }
    cout
    <<endl;
    }
    cout
    <<endl;
    }
    }
    system(
    "pause");
    return 0;
    }

  • 相关阅读:
    bzoj3786 星系探索
    [JSOI2008]火星人
    [NOI2005]维护数列
    [POI2008]砖块Klo
    郁闷的出纳员
    [HNOI2002]营业额统计
    [BZOJ1651][Usaco2006 Feb]Stall Reservations 专用牛棚
    [BZOJ2124]等差子序列
    [BZOJ3038]上帝造题的七分钟2
    [BZOJ1711][Usaco2007 Open]Dining吃饭
  • 原文地址:https://www.cnblogs.com/zhanglanyun/p/2063641.html
Copyright © 2011-2022 走看看