a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 學院 > 開發設計 > 正文

POJ1861-Network(Kruskal)

2019-11-11 05:12:52
字體:
來源:轉載
供稿:網友

Network Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 16497 Accepted: 6545 Special Judge Description

Andrew is working as system administrator and is planning to establish a new network in his company. There will be N hubs in the company, they can be connected to each other using cables. Since each worker of the company must have access to the whole network, each hub must be accessible by cables from any other hub (with possibly some intermediate hubs). Since cables of different types are available and shorter ones are cheaper, it is necessary to make such a plan of hub connection, that the maximum length of a single cable is minimal. There is another PRoblem — not each hub can be connected to any other one because of compatibility problems and building geometry limitations. Of course, Andrew will provide you all necessary information about possible hub connections. You are to help Andrew to find the way to connect hubs so that all above conditions are satisfied. Input

The first line of the input contains two integer numbers: N - the number of hubs in the network (2 <= N <= 1000) and M - the number of possible hub connections (1 <= M <= 15000). All hubs are numbered from 1 to N. The following M lines contain information about possible connections - the numbers of two hubs, which can be connected and the cable length required to connect them. Length is a positive integer number that does not exceed 106. There will be no more than one way to connect two hubs. A hub cannot be connected to itself. There will always be at least one way to connect all hubs. Output

Output first the maximum length of a single cable in your hub connection plan (the value you should minimize). Then output your plan: first output P - the number of cables used, then output P pairs of integer numbers - numbers of hubs connected by the corresponding cable. Separate numbers by spaces and/or line breaks. Sample Input

4 6 1 2 1 1 3 1 1 4 2 2 3 1 3 4 1 2 4 1 Sample Output

1 4 1 2 1 3 2 3 3 4

#include<cstdio>#include<iostream>#include<algorithm>#include<stdlib.h>#include<vector>using namespace std;const int maxn=1005;typedef struct edge{ int u,v,w;}edge;edge bian[15005];int pre[maxn];void init(){ for(int i=0;i<maxn;i++) pre[i]=i;}int find(int x){ if(pre[x] == x) return pre[x]; else return pre[x]=find(pre[x]);}void merge(int x,int y){ int fx=find(x),fy=find(y); if(fx != fy) pre[fx]=fy;}int cmp(edge a,edge b){ return a.w <b.w;}int main(){ // freopen("in.txt","r",stdin); int n,m; int t1,t2,t3; while(cin>>n>>m){ for(int i=0;i < m;i++){ cin>>t1>>t2>>t3; bian[i].u=t1,bian[i].v=t2,bian[i].w=t3; } init(); sort(bian,bian+m,cmp); /* for(int i=0;i< m;i++) cout<<bian[i].w<<" "; cout<<endl; */ int rst=n; vector<edge> vii; for(int i=0; i < m && rst>1 ; i++){ int x=bian[i].u,y=bian[i].v,z=bian[i].w; if(find(x)!=find(y)){ merge(x,y); rst --; vii.push_back( bian[i]); } } cout<<vii[ vii.size()-1].w<<endl; cout<<n-1<<endl; for(int i=0;i <vii.size();i++) cout<<vii[i].u<<" "<<vii[i].v<<endl; } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一区二区三区视频 | 精品国产一级毛片 | 日韩精品在线免费观看视频 | 在线亚洲精品 | 中文字幕一区二区三区精彩视频 | 国产精品一区亚洲二区日本三区 | 欧美成人久久久免费播放 | 一区二区三区久久 | 国产自产精品视频 | 亚洲欧美日韩精品久久亚洲区 | 国产精品久久久久久久久久99 | 欧美多人在线 | 国产精品98 | 国产精品一区二区四区 | 国产精品乱码一区二区三区 | 久久久久亚洲精品国产 | 欧美日韩国产一区 | 欧美视频在线一区 | 欧美精品亚洲精品 | 亚洲日本欧美日韩高观看 | 狠狠躁夜夜躁人人爽天天高潮 | 理论黄色片 | 日韩欧美国产一区二区三区 | 国产1区2区精品 | 91av国产在线视频 | 国产真实精品久久二三区 | 成人激情视频在线观看 | 亚洲tv视频 | 亚洲视频免费在线 | 久久久蜜桃一区二区人 | 色999视频 | 成人欧美一区二区三区在线播放 | 青青草视频在线观看 | 国产精品一区二区不卡视频 | 亚洲第一性理论片 | 亚洲高清视频一区 | 国模一区二区三区 | 国产精品一区免费 | 亚洲日本二区 | 国产美女久久 | 国产一区二区在线看 |