zoukankan      html  css  js  c++  java
  • POJ 1287 Networking

    传送门:http://poj.org/problem?id=1287

    解题思路:

    简答的最小生成树

    实现代码:

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    
    const int maxn=10000;
    
    struct Edges{
        int u,v,w;
        bool operator <(const Edges &rhs)const{
            return w<rhs.w;
        }
    }edges[maxn*maxn];
    
    int p[maxn];
    
    int findfa(int a){
        if(p[a]!=a)
            p[a]=findfa(p[a]);
        return p[a];
    }
    
    void unit(int a,int b){
        int fa=findfa(p[a]);
        int fb=findfa(p[b]);
    
        if(fa!=fb){
            p[fa]=fb;
        }
    }
    
    void init(int N){
        for(int i=0;i<=N;i++)
            p[i]=i;
    }
    int Kruskal(int P,int R){
        init(P);
        int ans=0;
    
        sort(edges,edges+R);
        for(int i=0;i<R;i++){
            if(findfa(edges[i].u)!=findfa(edges[i].v)){
                ans+=edges[i].w;
                unit(edges[i].u,edges[i].v);
            }
        }
        return ans;
    }
    
    int main(){
        int P,R;
        while(scanf("%d%d",&P,&R)!=EOF&&P){
            int m=0;
    
            for(int i=0;i<R;i++){
               scanf("%d%d%d",&edges[i].u,&edges[i].v,&edges[i].w);
            }
            printf("%d
    ",Kruskal(P,R));
        }
    }
    自己选的路,跪着也要把它走完------ACM坑
  • 相关阅读:
    CSS3中制作倒影box-reflect
    JS中==与===区别
    CSS3-Animation
    CSS3-transform
    CSS3-transition
    CSS盒模型-box-sizing
    css兼容处理-hack
    CSS3-rgba
    CSS3-文本-word-wrap,word-break,white-space
    CSS3-文本-text-shadow
  • 原文地址:https://www.cnblogs.com/IKnowYou0/p/6504654.html
Copyright © 2011-2022 走看看