zoukankan      html  css  js  c++  java
  • cf1184E1

    题意简述:给出n个点m条边的无向图,你可以修改第一条边的权值,使得他可能会处于一棵最小生成树中,问你第一条的权值最大(不超过1e9)可以改为多少

    题解:不去使用第一条边去跑最小生成树,然后在跑的过程中,有一条边连接的两个联通分量与第一条连接是一样的,那么答案就是这条边的权值

    如果最后没办法联通,说明第一条边是桥,答案是1e9

    int fa[maxn];
    
    int Find(int x){
    	return x==fa[x]?x:fa[x]=Find(fa[x]);
    }
    
    int main(){
    	int n,m;
    	cin>>n>>m;
    	vector<pair<int,pair<int,int>>> edge(m);
    	for(int i=0;i<m;i++){
    		cin>>edge[i].se.fi>>edge[i].se.se>>edge[i].fi;
    	}	
    	sort(edge.begin()+1,edge.end());
    	for(int i=1;i<=n;i++)
    		fa[i]=i;
    	for(int i=1;i<edge.size();i++){
    		int x=edge[i].se.fi,y=edge[i].se.se;
    		int px=Find(x),py=Find(y);
    		if(px!=py){
    			int p1=Find(edge[0].se.fi),p2=Find(edge[0].se.se);
    			if(p1==px&&p2==py) {
    				cout<<edge[i].fi<<endl;return 0;
    			}
    			if(p1==py&&p2==px) {
    				cout<<edge[i].fi<<endl;return 0;
    			}
    			fa[px]=py;
    		}
    	}
    	cout<<(int)1e9<<endl;
    }
    

      

  • 相关阅读:
    angluar 判断后跳转加参数
    angular 返回上一页
    angular 组件跳转组件 并传参数
    angluar 表单提交时候报错
    angular 中获取select选中的值
    javascript
    将数据渲染到页面的方式:模版
    将数据渲染到页面的几种方式
    跨域
    ajax
  • 原文地址:https://www.cnblogs.com/033000-/p/12333186.html
Copyright © 2011-2022 走看看