zoukankan      html  css  js  c++  java
  • poj1659Havel-hakimi 定理

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <climits>
    #include <string>
    #include <iostream>
    #include <map>
    #include <cstdlib>
    #include <list>
    #include <set>
    #include <queue>
    #include <stack>
    
    using namespace std;
    struct Node
    {
        int x;int val;
    }node[100];
    
    int cmp(const Node &a,const Node &b)
    {
        return a.val>b.val;
    }
    int G[100][100];
    int main()
    {
        int t,n;
        cin>>t;
        int cc=t;
        while(t--){
            memset(G,0,sizeof(G));
            cin>>n;
            for(int i=0;i<n;i++){
                int c;cin>>c;
                node[i].x=i;node[i].val=c;
            }
            bool flag=true;
            for(int i=0;i<n&&flag;i++){
                sort(node+i,node+n,cmp);
                for(int j=1;j<=node[i].val;j++){
                    int k=i+j;
                    if(k>=n){
                        flag=false;break;
                    }
                    node[k].val--;
                    if(node[k].val<0){
                        flag=false;break;
                    }
                    G[node[i].x][node[k].x]=1;
                    G[node[k].x][node[i].x]=1;
                //    cout<<node[i].x<<" "<<node[k].x<<endl;
                //    system("pause");
                }
            }
            if(!flag){
                if(t!=cc-1) cout<<endl;
                cout<<"NO"<<endl;
            }
            else{
                if(t!=cc-1) cout<<endl;
                cout<<"YES"<<endl;
                for(int i=0;i<n;i++){
                    for(int j=0;j<n;j++){
                        if(j==0) cout<<G[i][j];
                        else cout<<" "<<G[i][j];
                    }
                    cout<<endl;
                }
            }
        }
        return 0;
    }
    

      

  • 相关阅读:
    while语句
    闭包
    文件操作
    Python基础九:高级特性
    Python基础八:函数
    Python基础六:字典和集合
    Python基础七:条件判断和循环结构
    Python基础五:列表和元组
    Python基础四:字符串及编码
    Python基础三:数据类型和变量
  • 原文地址:https://www.cnblogs.com/yigexigua/p/3845090.html
Copyright © 2011-2022 走看看