题目链接:

PKU:http://poj.org/problem?id=1861

ZJU:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=542

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

Source

Northeastern Europe 2001, Northern Subregion

题意:

有n个顶点,m条边,每条边都是双向的,而且有一定的长度。要求使每一个顶点都连通,而且要使总长度最短,

输出最大边、边的总数和所选择的边。

PS:

貌似题目的案例有点问题,卡了好久!

应该输出的是:

1

3

1 3

2 3

2 4

代码例如以下:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 15017;
int father[maxn];
struct edge
{
int x,y,v;
};
struct edge ed[maxn],ansa[maxn]; bool cmp(edge a,edge b)
{
return a.v<b.v;
} int find(int x)
{
if(x==father[x])
return x;
return father[x]=find(father[x]);
} void Krusal(int n,int m)
{
int i,fx,fy,cnt;
int ans=0;
for(i = 1; i <= n; i++)
father[i]=i;
sort(ed,ed+m,cmp);//对边的排序
cnt=0;
int max=-1;
for(i=0; i<m; i++)
{
fx=find(ed[i].x);
fy=find(ed[i].y);
if(fx!=fy)
{
ans+=ed[i].v;
father[fx]=fy;
ansa[cnt].x=ed[i].x;
ansa[cnt++].y=ed[i].y;
if(max<ed[i].v)
max=ed[i].v;
}
}
printf("%d\n%d\n",max,cnt);
for(i=0; i<cnt; i++)
printf("%d %d\n",ansa[i].x,ansa[i].y);
} int main()
{
int t;
int n, m;
int a, b, k; while(scanf("%d %d",&n,&m)!=EOF)
{
for(int i = 0; i < m; i++)
{
scanf("%d %d %d",&a,&b,&k);
ed[i].x=a,ed[i].y=b,ed[i].v=k;
}
Krusal(n,m);
}
return 0;
}

POJ 1861 &amp; ZOJ 1542 Network(最小生成树之Krusal)的更多相关文章

  1. ZOJ 1542 POJ 1861 Network 网络 最小生成树,求最长边,Kruskal算法

    题目连接:problemId=542" target="_blank">ZOJ 1542 POJ 1861 Network 网络 Network Time Limi ...

  2. POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环)

    POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环) Description Arbi ...

  3. POJ 1861 Network (Kruskal算法+输出的最小生成树里最长的边==最后加入生成树的边权 *【模板】)

    Network Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 14021   Accepted: 5484   Specia ...

  4. POJ 1861:Network(最小生成树&amp;&amp;kruskal)

    Network Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 13266   Accepted: 5123   Specia ...

  5. POJ 2349 Arctic Network (最小生成树)

    Arctic Network Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Subm ...

  6. POJ 1861 Network (Kruskal求MST模板题)

    Network Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 14103   Accepted: 5528   Specia ...

  7. ZOJ 1586 QS Network (最小生成树)

    QS Network Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit Sta ...

  8. POJ 1861 Network (模版kruskal算法)

    Network Time Limit: 1000MS Memory Limit: 30000K Total Submissions: Accepted: Special Judge Descripti ...

  9. POJ 2349 Arctic Network(最小生成树+求第k大边)

    题目链接:http://poj.org/problem?id=2349 题目大意:有n个前哨,和s个卫星通讯装置,任何两个装了卫星通讯装置的前哨都可以通过卫星进行通信,而不管他们的位置. 否则,只有两 ...

随机推荐

  1. 【菜鸟也疯狂UML系列】——概述

       <信息系统开发与管理>.<软件project>这两本书中都有提到过UML.想必我们对UML已经不陌生了吧,虽说非常熟悉,可是仅仅是了解而已,而今天<UML基础与应用 ...

  2. Android项目总结

    功能: 1.图片载入 ImageLoader 參数配置要合理    cacheMemory 一次性的图片最好不要缓存在内存中   合理控制在内存中的内存大小 ,适当的释放   volley是googl ...

  3. 阿里云ECS linux通过rinetd 端口转发来访问内网服务

    一.场景说明: 可以通过端口映射的方式,来通过具有公网的云服务器 ECS 访问用户名下其它未购买公网带宽的内网 ECS 上的服务.端口映射的方案有很多,比如 Linux 下的 SSH Tunnel.r ...

  4. javascript - 闭包以及函数

    /** * 匿名函数 */ (function () { /** * 是否启用跟踪用户隐私 * * 启用:isPrivacys(true) * 不启用:isPrivacys(false) * */ f ...

  5. 实用且免费API接口2

    之前已经整理过一些免费API,现在在知乎专栏上看到别人整理的一些实用免费API,有一些是没有重复的,因此也搬过来. 今天的内容,很适合你去做一些好玩.实用的东西出来. 先来科普个概念,开放应用程序的A ...

  6. Android Exception 17(database or disk is full)

    android.database.sqlite.SQLiteFullException: database or disk is full delete some app,or clear cache

  7. 语言那点事,crt

    C语言标准(不管是ANSI 还是ISO)包含2部分,一部分是语言本身的标准,另一部分是C标准函数库.C标准函数库规定了函数的原型和功能,但是并没限定这些函数要怎么实现.所谓满足标准C规定的C编译器,不 ...

  8. c#枚举的描述和值

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; usin ...

  9. IOS推送通知測试工具PushMeBaby

    下载了PushMeBaby在xcode5里中不能使用.类库变了.须要加入Carbon.framework库.在引用的地方改成: #include <Carbon/Carbon.h>.程序就 ...

  10. php学习网站推荐

    http://nikic.github.io/https://github.com/walu/phpbook http://www.chinaunix.net/ https://news.ycombi ...