zoukankan      html  css  js  c++  java
  • BZOJ1196: [HNOI2006]公路修建问题


    八中还是清新

    比较水的一个并查集二分


    #include<bits/stdc++.h>
    using namespace std;
    struct node{int a,b,c,d;}num[200000];
    int f[200000],n,m,k;
    int find(int x){if(f[x]==x)return x;return f[x]=find(f[x]);}
    int check(int w)
    {
        int ans=0;
        for(int i=1;i<=n;i++)f[i]=i;
        for(int i=1;i<=m;i++)
        if(num[i].c<=w)
        {
            int x=find(num[i].a),y=find(num[i].b);
            if(x!=y){f[x]=y;ans++;}
        }
        if(ans<k)return 0;
        for(int i=1;i<=m;i++)
        if(num[i].d<=w)
        {
            int x=find(num[i].a),y=find(num[i].b);
            if(x!=y){f[x]=y;ans++;}
        }
        if(ans<n-1)return 0;
        return 1;
    }
    int main()
    {
        cin>>n>>k>>m;
        m--;
        for(int i=1;i<=m;i++)cin>>num[i].a>>num[i].b>>num[i].c>>num[i].d;
        int l=0,r=30100,ans;
        while(l<=r)
        {
            int mid=(l+r)/2;
            if(check(mid)){
                ans=mid,r=mid-1;
            }
            else l=mid+1;
        }
        cout<<ans;
    }
  • 相关阅读:
    vue cli 3 构建vue项目
    hadoop综合大作业
    理解Mapreduce
    熟悉常用的HBase操作
    常用的HDFS操作
    爬虫大作业
    数据结构化与保存
    爬取新闻
    网络爬虫基础练习
    Hadoop综合大作业
  • 原文地址:https://www.cnblogs.com/SFWR-YOU/p/11838743.html
Copyright © 2011-2022 走看看