• 长乐集训合集


    ## 最小差值生成树

    题目保证一定有生成树,并且图是联通的,那么我们只需要加一些限制条件枚举最小生成树即可.;

    按边从小到大排序,然后从最小边开始枚举,暴力尝试添加每一条边,期望时间复杂度 O(M^2logN).

    inline void kruskal(){
    	sort(e+1,e+m+1);
    	rep(i,1,m){
    		makeset(n);//对于每条最小边都做一次最小生成树。
            int cnt=1;
    		fa[e[i].u]=e[i].v;
    		int maxv=e[i].w;
    		rep(j,i+1,m){
    			int fu=find(e[j].u),fv=find(e[j].v);
    			if(fu==fv)continue;
    			fa[fu]=fv;
    			maxv=max(maxv,e[j].w);
    			if(++cnt==n-1)break;
    		}
    		if(cnt==n-1)//这里一定要判一下是不是==n-1,因为可能图不连通
            	ans=min(ans,maxv-e[i].w);
    	}
    }
    
  • 相关阅读:
    同舟共济
    MQTT客户端
    Emgucv安装及使用
    Go生成UUID
    Go语言使用百度翻译api
    Go压缩文件
    Go语言的标准net库使用
    Go文件操作
    Go语言获取本地IP地址
    禅道使用规范
  • 原文地址:https://www.cnblogs.com/sjsjsj-minus-Si/p/11634664.html
Copyright © 2020-2023  润新知