畅通project(杭电1863)
畅通project
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 17882 Accepted Submission(s): 7561
每一个測试用例的第1行给出评估的道路条数 N、村庄数目M ( < 100 );随后的 N
行相应村庄间道路的成本,每行给出一对正整数,各自是两个村庄的编号,以及此两村庄间道路的成本(也是正整数)。为简单起见。村庄从1到M编号。当N为0时。所有输入结束。相应的结果不要输出。
若统计数据不足以保证畅通,则输出“?”。
3 3
1 2 1
1 3 2
2 3 4
1 3
2 3 2
0 100
3
?#include<stdio.h>
#include<algorithm>
using namespace std;
int pre[105];
struct st
{
int a,b;
int p;
}data[105];
int find(int n) //找结点的根;
{
return pre[n]==n?n:pre[n]=find(pre[n]);
}
int join(int x,int y) //
{
int fx=find(x),fy=find(y);
if(fx!=fy) //假设两结点的根并不是为同一个点。连接起来。
{
pre[fx]=fy;
return 1;
}
return 0;
}
int cmp(st a,st b) //将修路的价钱按升序排列。
{
return a.p<b.p;
}
int main()
{
int i,m,n;
while(~scanf("%d %d",&m,&n),m)
{
for(i=1;i<=n;i++) //将结点独立(初始化);
{
pre[i]=i;
}
for(i=1;i<=m;i++)
{
scanf("%d %d %d",&data[i].a,&data[i].b,&data[i].p);
}
sort(data+1,data+m+1,cmp); //从i=1排序,n个数据,所以是sort(data+1,data+m+1,cmp);
int sum=0,ans=0;
for(i=1;i<=m;i++)
{
if(join(data[i].a,data[i].b)) //假设两节点的根为同一个根,则不须要修路,反之选修路花费较少的一条路(排序的作用)。
{
sum+=data[i].p;
}
}
for(i=1;i<=n;i++) //统计剩下孤立点的个数。间接统计须要修多少路。
{
if(pre[i]==i)
{
ans++;
}
}
if(ans>1)
printf("? \n");
else
printf("%d\n",sum);
}
return 0;
}
畅通project(杭电1863)的更多相关文章
- 杭电1863 畅通project
畅通project Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- ACM-最小生成树之畅通project——hdu1863
***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...
- 杭电1874畅通project绪
畅通project续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 杭电1233还是畅通project
还是畅通project Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- 畅通project(杭电1232)
畅通project Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- 杭电1232畅通project
畅通project Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- 杭电1879继续畅通project
继续畅通project Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- 畅通project续HDU杭电1874【dijkstra算法 || SPFA】
http://acm.hdu.edu.cn/showproblem.php?pid=1874 Problem Description 某省自从实行了非常多年的畅通project计划后.最终修建了非常多 ...
- HDU 1863:畅通project(带权值的并查集)
畅通project Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
随机推荐
- 通过项目逐步深入了解Mybatis<四>
延迟加载 什么是延迟加载? resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. ...
- 看漫画,学 Redux
Flux 架构已然让人觉得有些迷惑,而比 Flux 更让人摸不着头脑的是 Flux 与 Redux 的区别.Redux 是一个基于 Flux 思想的新架构方式,本文将探讨它们的区别. 如果你还没有看过 ...
- win7 绿色版MySQL安装与配置
操作步骤: 一.安装MySQL数据库 1.下载MySQL-5.6.17-winx64.zip文件.2.解压到指定目录,本例为D:\mysql-5.6.17-winx64.3.修改配置文件,my-def ...
- Oracle Golden Gate - 概念和机制 (ogg)
Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉.变换.投递. OGG支持的异构环境有: OGG的特性: 对生产系统影响小:实时读取交易日志,以低资源占用实现大交易量数据实时复制 ...
- 淘宝开源任务调度框架tbschedule
背景 分布式任务调度是非常常见的一种应用场景,一般对可用性和性能要求不高的任务,采用单点即可,例如linux的crontab,spring的quarz,但是如果要求部署多个节点,达到高可用的效果,上面 ...
- javascript模式——Decorator
Decorator 模式是一种结构型模式,他意在促进代码的复用,是塑造子类的一个方式. 这种想法是基于,新增的属性,对于对象来说不是必须的基本功能.我们为特殊的对象添加自己的方法,而不是重新创建一个类 ...
- CSS的base文件常用代码
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body,but ...
- net 2.0使用ajax
asp.net ajax中用到了几个dll文件,这些可以从网上下载.http://ajax.asp.net站点下可以找到相关的下载.这其中包括:System.Web.Extensions.dll.Sy ...
- Oracle如何只显示重复数据,或不显示重复数据
思路: 一.对所有字段进行分组并计数 二.计数大于1的就显示 select * from 表名 group by 字段1,字段2 having count(*)>1 (显示重复)
- S - 骨牌铺方格(第二季水)
Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种, ...