zoukankan      html  css  js  c++  java
  • hdu 1598 并查集+暴搜

    唉。。。这题太让我伤心了,看完题之后知道是最小生成树,但是却没想到暴搜,卡了好久,最后是看别人的思路才过的,感觉自己好笨啊!!!

    #include"stdio.h"
    #include"stdlib.h"
    #define inf 999999
    
    int n,m,fa[105];
    struct node
    {
        int x,y;
        int cost;
    }edge[1005];
    
    int cmp(const void *a,const void *b)
    {
        node *aa=(node*)a,*bb=(node*)b;
        return aa->cost-bb->cost;
    }
    
    int find(int w)
    {
        while(w!=fa[w])
            w=fa[w];
        return w;
    }
    
    int main( )
    {
        int i,a,b,min,q;
        int s,e,t,j;
        while(~scanf("%d%d",&n,&m))
        {
            for(i=0;i<m;i++)
                scanf("%d%d%d",&edge[i].x,&edge[i].y,&edge[i].cost);
            qsort(edge,m,sizeof(node),cmp);
            scanf("%d",&q);
            while(q--)
            {
                min=inf;
                scanf("%d%d",&s,&e);
                for(i=0;i<m;i++)//从前到后枚举每一条边;
                {
                    for(j=0;j<=n;j++)
                        fa[j]=j;
                    for(j=i;j<m;j++)
                    {
                        a=find(edge[j].x);
                        b=find(edge[j].y);
                        if(a!=b)
                            fa[b]=a;
                        if(find(s)==find(e))//直到找到一条可以使起点到达终点的边,做差;
                        {
                            t=edge[j].cost-edge[i].cost;
                            if(min>t)
                                min=t;
                            break;
                        }
                    }
                    if(j==m)
                        break;
                }
                if(min==inf)
                    printf("-1\n");
                else
                    printf("%d\n",min);
            }
            
        }
        return 0;
    }
  • 相关阅读:
    动态调整iframe的高度
    Binary Tree Zigzag Level Order Traversal
    Leetcode Anagrams
    二叉树层次遍历串成单链表
    leetcode 4sum
    leetcode 二叉树系列
    编程之美2.3
    Decode Ways
    leetcode graycode
    leetcode editdistance
  • 原文地址:https://www.cnblogs.com/chaosheng/p/2683193.html
Copyright © 2011-2022 走看看