zoukankan      html  css  js  c++  java
  • hdu1598(并查集)

    将边从小到大排序,然后从最小的开始枚举,判断连通,得到当前的速度最小差,比较得出最小值。

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 using namespace std;
     5 struct po
     6 {
     7     int u,v,w;
     8 } s[1005];
     9 int p[1005];
    10 int cmp(po a,po b)
    11 {
    12     return a.w<b.w;
    13 }
    14 int findSet(int x)
    15 {
    16     if (p[x] == x)
    17         return x;
    18     return findSet(p[x]);
    19 }
    20 int main()
    21 {
    22     int n,m;
    23     while(scanf("%d%d",&n,&m)!=EOF)
    24     {
    25         for(int i=0;i<m;i++)
    26         scanf("%d%d%d",&s[i].u,&s[i].v,&s[i].w);
    27         sort(s,s+m,cmp);
    28         for(int i=0;i<=n;i++) p[i]=i;
    29         int t;
    30         scanf("%d",&t);
    31             int st[20],en[20],num[20],cha[20];
    32             for(int i=0;i<t;i++)
    33                 scanf("%d%d",&st[i],&en[i]);
    34             memset(num,0,sizeof(num));
    35             for(int i=0;i<t;i++)
    36             cha[i]=2000000;
    37             for(int k=0;k<m;k++)
    38             {
    39                 for(int i=0;i<=n;i++) p[i]=i;
    40                 for(int i=k;i<m;i++)
    41                 {
    42                     int fx = findSet(s[i].u);
    43                     int fy = findSet(s[i].v);
    44                     if (fx != fy)
    45                     p[fx] = fy;
    46                     for(int j=0;j<t;j++)
    47                     if(findSet(st[j])==findSet(en[j])&&num[j]==0)
    48                     {
    49                         if(s[i].w-s[k].w<cha[j])
    50                         cha[j]=s[i].w-s[k].w;
    51                     }
    52                 }
    53             }
    54 
    55             for(int i=0;i<t;i++)
    56             if(cha[i]!=2000000)
    57             printf("%d
    ",cha[i]);
    58             else printf("-1
    ");
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    【翻译】谈 focus 和 blur 的事件代理
    【翻译】细分域名的优势
    Form窗体的Combobox键值对绑定
    日志
    ajaxload
    c#文件整理程序
    每天工作4小时的程序员
    每年这一天
    转载从交友到社交的个人成长
    旅行的意义
  • 原文地址:https://www.cnblogs.com/Acgsws/p/3216780.html
Copyright © 2011-2022 走看看