zoukankan      html  css  js  c++  java
  • UVa 10600 ACM contest and Blackout( 次小生成树)

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 #define INF 0xffffff
     5 #define maxn 105
     6 using namespace std;
     7 int f[maxn],ise[maxn],t,n,m;
     8 typedef struct
     9 {
    10     int x,y,w;
    11 }Edge;
    12 Edge e[maxn];
    13 int find(int x)
    14 {
    15     if(f[x]!=x)
    16         f[x]=find(f[x]);
    17     return f[x];
    18 }
    19 int cmp(Edge a,Edge b)
    20 {
    21     return a.w<b.w?1:0;
    22 }
    23 int kru()
    24 {
    25     int ans=0,id=0;
    26     for(int i=1;i<=n;i++)
    27         f[i]=i;
    28     for(int i=1;i<=m;i++)
    29     {
    30         int f1=find(e[i].x);
    31         int f2=find(e[i].y);
    32         if(f1!=f2)
    33         {
    34             f[f1]=f2;
    35             ans+=e[i].w;
    36             ise[id++]=i;
    37         }
    38     }
    39     return ans;
    40 }
    41 int kru1(int del)
    42 {
    43     int ans=0;
    44     for(int i=1;i<=n;i++)
    45         f[i]=i;
    46     for(int i=1;i<=m;i++)
    47     {
    48         if(i==del)
    49             continue;
    50         int f1=find(e[i].x);
    51         int f2=find(e[i].y);
    52         if(f1!=f2)
    53         {
    54             f[f1]=f2;
    55             ans+=e[i].w;
    56         }
    57     }
    58     return ans;
    59 }
    60 int main()
    61 {
    62     //freopen("in.txt","r",stdin);
    63     scanf("%d",&t);
    64     while(t--)
    65     {
    66         scanf("%d%d",&n,&m);
    67         for(int i=1;i<=m;i++)
    68             scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].w);
    69         sort(e+1,e+m+1,cmp);
    70         int ans1=kru(),ans2=INF;
    71         for(int i=1;i<n-1;i++)
    72         {
    73             int x=ise[i];
    74             ans2=min(ans2,kru1(x));
    75         }
    76         printf("%d %d
    ",ans1,ans2);
    77     }
    78     return 0;
    79 }
  • 相关阅读:
    内存管理工具
    c语言目录操作总结
    重写strstr、strcpy、memcpy、memset、atof算法
    统计编码量工具
    hdu4348
    bzoj4358: permu
    bzoj2658: [Zjoi2012]小蓝的好友(mrx)
    bzoj2657: [Zjoi2012]旅游(journey)
    bzoj3583: 杰杰的女性朋友
    bzoj3673 bzoj3674可持久化并查集
  • 原文地址:https://www.cnblogs.com/lyf123456/p/3596651.html
Copyright © 2011-2022 走看看