• UESTC 1636 梦后楼台高锁,酒醒帘幕低垂


    题意:求一条路径,使得这条边连接1到n,求边权值的最大值与最小值的差

    题解:最小生成树,对边权排序,可以枚举边的最大和最小的值,判断能否使得1和n连通

    #include <bits/stdc++.h>
    #define ll long long
    #define maxn 1010
    using namespace std;
    struct edge{
        ll from,to,weight;
    };
    int cmp(edge a,edge b){
        return a.weight<b.weight;
    }
    vector<edge>edges;
    int fa[maxn];
    int find(int x){
        return x==fa[x]?x:(fa[x] = find(fa[x]));
    }
    void init(int n){
        for(int i=1;i<=n;i++) fa[i] = i;
    }
    int main(){
        ll n,m,i,j,a,b,c, ma = -1e17,mi = 1e17, ans = 1e18;
        cin>>n>>m;
        for(i=0;i<m;i++){
            cin>>a>>b>>c;
            edges.push_back((edge){a,b,c});
        }
        sort(edges.begin(), edges.end(), cmp);
        for(i=0;i<m;i++){
            init(n);
            mi = 1e17;
            ma = -1e18;
            for(j=i;j<m;j++){
                edge e = edges[j];
                mi = min(e.weight, mi);
                ma = max(e.weight, ma);
                int fau = find(e.from);
                int fav = find(e.to);
                if(fau != fav) fa[fau] = fav;
                if(find(n) == find(1)) break;
            }
            if(j<m) ans = min(ans, ma-mi);
        }
        cout<<ans<<endl;
        return 0;
    }
    View Code
  • 相关阅读:
    mysql 基本操作
    ZooKeeper服务-数据模型
    DataX-HDFS(读写)
    DataX-MySQL(读写)
    DataX的安装
    ZooKeeper-znode概念与使用
    ZooKeeper-安装和运行
    HBase-存储-KeyValue格式
    HBase-存储-HFile格式
    HBase-存储-文件存储结构、拆分、合并
  • 原文地址:https://www.cnblogs.com/Noevon/p/7162632.html
Copyright © 2020-2023  润新知