zoukankan      html  css  js  c++  java
  • 【洛谷 1547】Out of Hay

    题目背景

    奶牛爱干草

    题目描述

    Bessie 计划调查N (2 <= N <= 2,000)个农场的干草情况,它从1号农场出发。农场之间总共有M (1 <= M <= 10,000)条双向道路,所有道路的总长度不超过1,000,000,000。有些农场之间存在着多条道路,所有的农场之间都是连通的。

    Bessie希望计算出该图中最小生成树中的最长边的长度。

    输入格式

    两个整数N和M。

    接下来M行,每行三个用空格隔开的整数A_i, B_i和L_i,表示A_i和 B_i之间有一条道路长度为L_i。

    输出格式

    一个整数,表示最小生成树中的最长边的长度。

    输入输出样例

    输入 #1
    3 3
    1 2 23
    2 3 1000
    1 3 43
    输出 #1
    43

    题解:最小生成树,不解释上代码。

    #include<iostream>
    #include<algorithm>
    #include<queue>
    #include<cmath>
    #include<cstring>
    #include<cstdlib>
    #include<cstdio>
    using namespace std;
    typedef double db;
    const int N=20005;
    int n,m,cp,tot,fa[N],b[N];
    
    struct node{
        int x,y;
    }a[N];
    
    struct YCLL{
        int u,v;
        int va;
    }e[N];
    
    int ans=0;
    
    bool cmp(YCLL aa,YCLL bb){
        return aa.va<bb.va;
    }
    
    int find(int x){
        if(x!=fa[x]) 
           fa[x]=find(fa[x]);
        return fa[x];
    }
    int main(){
        freopen("1547.in","r",stdin);
        freopen("15477.out","w",stdout);
        scanf("%d",&n); scanf("%d",&m);
        for(int i=1;i<=n;i++) fa[i]=i;
        for(int i=1;i<=m;i++)
            scanf("%d %d %d",&e[i].u,&e[i].v,&e[i].va);
        sort(e+1,e+m+1,cmp);
        for(int i=1;i<=m;i++){
            int uu=find(e[i].u);
            int vv=find(e[i].v);
            if(uu==vv) continue;
            ans=e[i].va; 
            fa[uu]=vv; tot++;
            if(tot==(n-1)) break;
        }
        printf("%d",ans);
        return 0;
    }
  • 相关阅读:
    python操作MySQL数据库
    fs 小计
    yii xss模型安全
    freeswitch 音 视频 支持的编码
    MYSQL手工注入某日本网站
    Linux 系统 pptpd+radius+mysql 安装攻略
    mysql主从复制之mysql-proxy实现读写分离
    nginx-1.2.7+tcp_proxy_module负载均衡配置
    nginx-1.2.7 + tcp_proxy_module手动编译安装
    关于弹框的那些事~
  • 原文地址:https://www.cnblogs.com/wuhu-JJJ/p/11296212.html
Copyright © 2011-2022 走看看