• hdu_5813_Elegant Construction(xjb搞)


    题目链接:hdu_5813_Elegant Construction

    题意:

    给你n个点,每个点要可以到达ai个点,可以直接可以间接,不能有环,问是否可行,如果可行就任选一种方式连接,并输出连接的边数和边

    题解:

    我们按每个点要能到达的点数从小到大排序,然后枚举每个点i,对前面的j(j<i)连一条边,这样保证能到达ai个点,如果第i个点大于等于i,那么肯定没有方案,此时不能向后面的点连边,如果连了就成环了。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef pair<int,int>P;
     4 int t,n,x,y;
     5 P dt[1011];
     6 int main()
     7 {
     8     int t;scanf("%d",&t);
     9     for(int ic=1;ic<=t;ic++)
    10     {
    11         scanf("%d",&n);
    12         int sum=0;
    13         for(int i=1;i<=n;i++)
    14         {
    15             scanf("%d",&x),sum+=x;
    16             dt[i].first=x,dt[i].second=i;
    17         }
    18         sort(dt+1,dt+1+n);
    19         int fg=0;
    20         for(int i=1;i<=n;i++)if(dt[i].first>=i){fg=1;break;}
    21         if(fg)printf("Case #%d: No
    ",ic);
    22         else
    23         {
    24             printf("Case #%d: Yes
    ",ic);
    25             printf("%d
    ",sum);
    26             for(int i=1;i<=n;i++)
    27             {
    28                 for(int j=1;j<=dt[i].first;j++)
    29                 printf("%d %d
    ",dt[i].second,dt[j].second);
    30             }
    31         }
    32     }
    33     return 0;
    34 }
    View Code
  • 相关阅读:
    Mysql 基础
    Python Cdn平台文件md5验证
    Linux内存cache/buffer剖析
    wget
    UTV
    智能DNS解析之edns-client-subnet篇
    Python Django
    OpenSSL SNI
    Python 基础(一)
    Python ORM
  • 原文地址:https://www.cnblogs.com/bin-gege/p/5754249.html
Copyright © 2020-2023  润新知