• HDU 1233 还是畅通工程。


    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1233

    x

    解题思路:

    简单的最小生成树

    实现代码:

    #include <iostream>
    #include <cstdio>
    #include <queue>
    #include <algorithm>
    using namespace std;
    
    const int maxn=101;
    
    
    struct NodeHeap{
        int x,y, w;
        bool operator <(const NodeHeap & rhs)const{
            return w<rhs.w;
        }
    }edges[maxn*maxn];
    
    int f[maxn];
    
    int findfa(int u){
        if(f[u]==u) return u;
        return f[u]=findfa(f[u]);
    }
    
    void unit(int u,int v){
        int fu=findfa(u);
        int fv=findfa(v);
        if(fu!=fv)
            f[fu]=fv;
    }
    
    int main(){
        int N;
        while(scanf("%d",&N)!=EOF&&N!=0){
    
            for(int i=0;i<N*(N-1)/2;i++){
                scanf("%d%d%d",&edges[i].x,&edges[i].y,&edges[i].w);
            }
            sort(edges,edges+(N*(N-1)/2));
    
            for(int i=1;i<=N;i++){
                f[i]=i;
            }
    
            long long cost=0;
            int k=0;
            for(int i=0;i<(N*(N-1)/2);i++){
    
                if(findfa(edges[i].x)!=findfa(edges[i].y)){
                    unit(edges[i].x,edges[i].y);
                    cost+=edges[i].w;
                    k++;
    
                }
    
                if(k==N-1){
                    break;
                }
            }
    
            printf("%d
    ",cost);
        }
        return 0;
    
    }
    自己选的路,跪着也要把它走完------ACM坑
  • 相关阅读:
    ffmpeg文档03-详细说明
    ffmpeg文档01-命令语法
    ffmpeg文档02-描述/概览
    OpenWrt使用花生壳脚本
    upc 9315 Philosopher’s Walk
    upc 9312 Game Map
    hdu 1251 统计难题
    Trie树简要讲解
    [算法]一次商品交易利益最大化
    [c语言]左移和右移
  • 原文地址:https://www.cnblogs.com/IKnowYou0/p/6501405.html
Copyright © 2020-2023  润新知