zoukankan      html  css  js  c++  java
  • POJ 2421Constructing Roads

    题意:提供任意两点直接的距离,然后在已知某两点直接已经修建好路的情况下,问还需要修长的最小距离,注意!再用 kruskal 算法的时候注意有些已经修好的边可能出现重复的  所以需要判断处理,其他都是套路,细心处理即可;

    #include<algorithm>
    #include<iostream>
    #include<queue>
    #include<stack>
    #include<vector>
    #include<map>
    #include<set>
    #include<cstring>
    #include<string>
    using namespace std;
    int a[105][105];
    int first[105];int next[105];
    typedef struct node{
    	int x;int y;int date;
    }node;
    bool cmp(node w,node e){
    	return w.date<e.date;
    }
    node vulue[10005];
    void csh(int m){
    	for(int i=1;i<=m;i++){
    		first[i]=i;
    	}
    	for(int i=1;i<=m;i++){
    		next[i]=1;
    	}
    }
    int find(int x){
    	if(first[x]==x)  return x;
    	else{
    		x=first[x];
    		return find(x);
    	}
    }
    void hebin(int x,int y){
    	x=find(x);
    	y=find(y);
    	if(x==y) return ;
    	if(next[x]>next[y]){
    		first[y]=x;
    	}
    	else{
    		first[x]=y;
    		if(next[x]==next[y]){
    			next[y]++;
    		}
    	}
    	return ;
    }
    int main(){
    	int n;
    	cin>>n;
    	csh(n);
    	int k=0;
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=n;j++){
    			cin>>a[i][j];
    			if(a[i][j]!=0&&i<=j){
    				k++;
    				vulue[k].x=i;vulue[k].y=j;vulue[k].date=a[i][j];
    			}
    		}
    	}
    	sort(vulue+1,vulue+k+1,cmp);
    	int m;
    	cin>>m;
    	int b,c;
    	int sum=0;
    	for(int i=1;i<=m;i++){
    		cin>>b>>c;
    		if(find(b)!=find(c)){
    		sum++;
    		hebin(b,c);}
    	}
    	int ans=0;
    	for(int i=1;i<=k;i++){
    		if(find(vulue[i].x)!=find(vulue[i].y)){
    			sum++;
    			ans+=vulue[i].date;
    			hebin(vulue[i].x,vulue[i].y);
    			if(sum==(n-1)){
    				break;
    			}
    		}
    	}
    	cout<<ans<<endl;
    	return 0;
    }


  • 相关阅读:
    (转)VC++多线程编程
    英文缩写汇总
    SINGLETON(单件)——对象创建型模式
    指针地址的修改
    我在csdn博客中的一些总结
    listener的执行先后问题
    css的精髓是布局,而不是样式——之三
    Jo——一个简单HTML5移动框架介绍
    深入了解javascript中的exec与match方法
    多ajax查询模拟一个整体的查询事务
  • 原文地址:https://www.cnblogs.com/wang9897/p/7624387.html
Copyright © 2011-2022 走看看