• 洛谷 P1396 营救


    洛谷 P1396 营救

    题目链接

    https://www.luogu.org/problemnew/show/P1396


    题目描述

    “咚咚咚……”“查水表!”原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动的热泪盈眶,开起了门……

    妈妈下班回家,街坊邻居说小明被一群陌生人强行押上了警车!妈妈丰富的经验告诉她小明被带到了t区,而自己在s区。

    该市有m条大道连接n个区,一条大道将两个区相连接,每个大道有一个拥挤度。小明的妈妈虽然很着急,但是不愿意拥挤的人潮冲乱了她优雅的步伐。所以请你帮她规划一条从s至t的路线,使得经过道路的拥挤度最大值最小。


    输入输出格式

    输入格式:

    第一行四个数字n,m,s,t。

    接下来m行,每行三个数字,分别表示两个区和拥挤度。

    (有可能两个区之间有多条大道相连。) 


    输出格式:

    输出题目要求的拥挤度。


    思路

    首先我想吐槽这个题目......小明同学防范意识太差了,有个人就以为是好心的,以后怎么在社会上立足啊这

    她妈妈有丰富的经验??看来孩子不是丢过一次两次了......

    还要保持优雅的风范??孩子都没了还这么镇定......你是个秀儿吧......

    种种行为告诉我们这个题......是个变态题

    然后我们就有了这个神奇的营救题目

    一个kruskal最小生成树就可以水过去了

    将边从小到大排序,然后kruskal最小生成树连边,当s和t第一次联通时,当前边的权值就是答案了.

    可能是数据水的问题QAQ


    代码

    #include<bits/stdc++.h>//懒人专用头文件
    using namespace std;
    
    int n,m,s,t,pre[200001];//pre数组是储存自己的根节点
    struct node{
        int x,y,w;
    }bian[100001];//结构体存边
    
    bool comp(node a,node b){//结构体排序
        return a.w<b.w;
    }
    
    inline int read(){//快读
        char c=getchar();
        int x=0,f=1;
        while(c<'0' || c>'9'){if(c=='-')f=-1;c=getchar();}
        while(c>='0'&& c<='9'){x=x*10+c-'0';c=getchar();}
        return x*f;
    }
    
    int find(int x){//路径压缩
        if(pre[x]==x)return x;
        return pre[x]=find(pre[x]);
    }
    
    int main(){
        n=read();m=read();s=read();t=read();
        for(int i=1;i<=m;i++){
            bian[i].x=read();
            bian[i].y=read();
            bian[i].w=read();        
        }
        for(int i=1;i<=n;i++){
            pre[i]=i;
        }
        sort(bian+1,bian+1+m,comp);
        for(int i=1;i<=m;i++){
            int r1=find(bian[i].x);
            int r2=find(bian[i].y);
            if(r1!=r2)pre[r1]=r2;
            if(find(s)==find(t)){//碰到啦,输出走人
                cout<<bian[i].w<<'
    ';
                return 0;//愉快的去救自己的儿子吧!别忘记要保持优雅风范
            }
        }
        return 0;
    }
  • 相关阅读:
    汉语-词语-从容:百科
    汉语-词语-伶俜:百科
    汉语-词语-心迹:百科
    汉语-词语-痛楚:百科
    汉语-词语-痛苦:百科
    汉语-词语:散步
    汉语-词语-憎恨:百科
    2455 繁忙的都市
    P2820 局域网
    NOIP2013Day1T3 表示只能过一个点
  • 原文地址:https://www.cnblogs.com/loceaner/p/10688544.html
Copyright © 2020-2023  润新知