• HDU1598


    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1598

    解题思路:

      详见代码及注释。

    AC代码:

     1 #include <algorithm>
     2 #include <cstdio>
     3 #include <cstring>
     4 using namespace std;
     5 const int maxn=205,maxm=1005,inf=0x7ffffff;
     6 struct edge{
     7     int u,v,spe;
     8 }es[maxm];
     9 int n,m;
    10 int fa[maxn];
    11 bool cmp(edge &a,edge &b){
    12     return a.spe<b.spe;
    13 }
    14 int finds(int x){
    15     if(x==fa[x])    return x;
    16     return fa[x]=finds(fa[x]);
    17 }
    18 int main(){
    19     int Q,a,b;
    20     while(scanf("%d%d",&n,&m)==2){
    21         for(int i=0;i<m;i++)
    22             scanf("%d%d%d",&es[i].u,&es[i].v,&es[i].spe);
    23         sort(es,es+m,cmp);  //对每一条边根据限速从小到大进行排序
    24         scanf("%d",&Q);
    25         while(Q--){
    26             scanf("%d%d",&a,&b);
    27             int ans=inf;
    28             for(int i=0;i<m;i++){   //外层循环从限速最小的那条边开始遍历,此时的最小速度即为这个
    29                 bool can=false;
    30                 for(int j=1;j<=n;j++)   fa[j]=j;
    31                 for(int j=i;j<m;j++){   //内层循环
    32                     edge e=es[j];
    33                     int t1=finds(e.u),t2=finds(e.v);    //并查集
    34                     if(t1!=t2){
    35                         fa[t1]=t2;
    36                         if(finds(a)==finds(b)){//一旦使得a和b相连,记录下此时的舒适度,并更新ans,退出内层循环
    37                             ans=min(ans,es[j].spe-es[i].spe);
    38                             can=true;
    39                             break;
    40                         }
    41                     }
    42                 }
    43                 if(!can||ans==0)    break;  //如果ans=0(没有办法更好)或者a和b无法联通(最小速度没有办法更大),退出外层循环
    44             }
    45             if(ans==inf)    printf("-1
    ");
    46             else    printf("%d
    ",ans);
    47         }
    48     }
    49     return 0;
    50 }
    “这些年我一直提醒自己一件事情,千万不要自己感动自己。大部分人看似的努力,不过是愚蠢导致的。什么熬夜看书到天亮,连续几天只睡几小时,多久没放假了,如果这些东西也值得夸耀,那么富士康流水线上任何一个人都比你努力多了。人难免天生有自怜的情绪,唯有时刻保持清醒,才能看清真正的价值在哪里。”
  • 相关阅读:
    模板
    模板
    模板
    模板
    2017-2018 ACM-ICPC Asia Tsukuba Regional Contest
    牛客
    软件工程
    Codeforces Round 696(Div.2)
    Atcoder ARC111 contest
    Codeforces Educational Round 100(Div.2)
  • 原文地址:https://www.cnblogs.com/Blogggggg/p/7430020.html
Copyright © 2020-2023  润新知