zoukankan      html  css  js  c++  java
  • hdu 4738

    桥的应用!

    虽然以前做过强联通分量的题,但刷的很水,所以比赛的时候一直想不起来是桥的应用;

    反省一下~~~学习一下!

    思路,找到权值最小的桥;用tarjin算法!

    代码:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #define maxn 1003
     5 using namespace std;
     6 
     7 struct edge
     8 {
     9     int st,ed,w,next;
    10 }e[maxn*maxn*2];
    11 
    12 int head[maxn],dfn[maxn],low[maxn],nncount,best,num,dan;
    13 
    14 void addedge(int x,int y,int w)
    15 {
    16     e[num].st=x,e[num].ed=y,e[num].w=w,e[num].next=head[x],head[x]=num++;
    17     e[num].st=y,e[num].ed=x,e[num].w=w,e[num].next=head[y],head[y]=num++;
    18 }
    19 
    20 void tarjin(int x,int id)
    21 {
    22     int v;
    23     dfn[x]=low[x]=nncount++;
    24     for(int i=head[x]; i!=-1; i=e[i].next)
    25     {
    26         int v=e[i].ed;
    27         if(i==(id^1)) continue;
    28         if(dfn[v]==-1)
    29         {
    30             tarjin(v,i);
    31             low[x]=min(low[v],low[x]);
    32             if(low[v]>dfn[x])
    33                 if(best>e[i].w)
    34                     best=e[i].w;
    35         }
    36         else low[x]=min(dfn[v],low[x]);
    37     }
    38     dan++;
    39 }
    40 
    41 int main()
    42 {
    43     int n,m,a,b,w;
    44     while(scanf("%d%d",&n,&m)&&(n+m))
    45     {
    46         memset(dfn,-1,sizeof dfn);
    47         num=0,nncount=0,dan=0;
    48         best=10000000;
    49         memset(head,-1,sizeof head);
    50         for(int i=0; i<m; i++)
    51         {
    52             scanf("%d%d%d",&a,&b,&w);
    53             addedge(a,b,w);
    54         }
    55         tarjin(1,-1);
    56         if(dan<n)puts("0");
    57         else if(best==10000000) puts("-1");
    58         else if(best==0) puts("1");
    59         else printf("%d
    ",best);
    60     }
    61     return 0;
    62 }
    View Code
  • 相关阅读:
    C语言二维数组
    Foxyproxy 火狐代理插件
    Midas Civil的钢束生成器
    foobar2000 – ELPlaylist
    Foobar2000-CUI 小结
    Foobar2000–panel stack splitter
    Foobar2000 使用说明
    foobar2000-new
    书匠
    图片转文字 ocr 汉王
  • 原文地址:https://www.cnblogs.com/yours1103/p/3325116.html
Copyright © 2011-2022 走看看