hdu 1233 还是畅通project
本题链接:点击打开链接
本题大意:
有n个村庄,n*(n-1)/2条路,输入每条路所连接是哪两个村庄及长度,求使全部村庄均连通(并不是都两两连通)
所铺公路的最短路程。
解题思路:
使用并查集基础及Kruskal算法。使用一结构体存放该条路所连接的两个村庄及公路长度。
參考代码:
#include<stdio.h>
#include<algorithm>
using namespace std;
int per[110];
int n;
struct node{
int u,v,w;
}a[10000];
int cmp(node a,node b)
{
return a.w<b.w;
}
void init()
{
for(int i=1;i<=n;i++)
per[i]=i;
}
int find(int x)
{
if(per[x]==x)
return x;
else
return per[x]=find(per[x]);
}
bool join(int x,int y)
{
int fx=find(x);
int fy=find(y);
if(fx!=fy)
{
per[fx]=fy;
return true;
}
else
{
return false;
} }
int main()
{
while(scanf("%d",&n)!=EOF&&n)
{
int m=n*(n-1)/2;
for(int i=0;i<m;i++)
scanf("%d%d%d",&a[i].u,&a[i].v,&a[i].w);
init();
sort(a,a+m,cmp);
int sum=0;
for(int i=0;i<m;i++)
{
if(join(a[i].u,a[i].v))
sum+=a[i].w;
}
printf("%d\n",sum);
}
return 0;
}
hdu 1233 还是畅通project的更多相关文章
- hdu 1233 还是畅通project (克鲁斯卡尔裸题)
还是畅通project Time Limit: 4000/2000 MS (Java/Others) M ...
- hdu 1233(还是畅通project)(prime算法,克鲁斯卡尔算法)(并查集,最小生成树)
还是畅通project Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- hdu 1233 还是畅通project(kruskal求最小生成树)
还是畅通project Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- HDU.1233 还是畅通工程(Prim)
HDU.1233 还是畅通工程(Prim) 题意分析 首先给出n,代表村庄的个数 然后出n*(n-1)/2个信息,每个信息包括村庄的起点,终点,距离, 要求求出最小生成树的权值之和. 注意村庄的编号从 ...
- HDU 1233 还是畅通工程(Kruskal算法)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1233 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) ...
- hdu 1233 还是畅通工程 (最小生成树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1233 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) ...
- HDU 1863:畅通project(带权值的并查集)
畅通project Time Limit: 1000/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 ...
- hdu 1233 还是畅通工程 解题报告
题目链接:http://code.hdu.edu.cn/showproblem.php?pid=1233 并查集的运用, 实质就是求最小生成树.先对所有的村庄距离从小到大排序,然后判断村庄之间是否属于 ...
随机推荐
- Generator [ˈdʒenəreɪtə(r)] 函数结构
Generator函数是ES6新增的一种异步编程方案. 说明:Generator函数指的是一种新的语法结构,是一个遍历器对象生成器,它内部可以封装多个状态,非常适合用于异步操作. Generator函 ...
- 老生常谈,HashMap的死循环(转)
本文转自掘金占小狼:用于理解HashMap为什么线程不安全,不能用于并发. 地址就在下文: 问题 由于HashMap并非是线程安全的,所以在高并发的情况下必然会出现问题,这是一个普遍的问题,虽然网上分 ...
- Bootstrap 3 Menu Generator
Bootstrap 3 Menu Generator
- C#获取显示器屏幕数量 控制winform显示到哪一个屏幕
获取当前系统连接的屏幕数量: Screen.AllScreens.Count();获取当前屏幕的名称:string CurrentScreenName = Screen.FromControl(thi ...
- Android:EditText限制文字输入
Android的编辑框控件EditText在平常编程时会经常用到,有时候会对编辑框增加某些限制,如限制只能输入数字,最大输入的文字个数,不能输入 一些非法字符等,这些需求有些可以使用android控件 ...
- 使用TestFlight邀请外部人员測试APP
怎样使用TestFlight邀请外部人员測试APP 详细过程例如以下: 1.在邀请測试人员的时候.按上线流程打包APP,提交. 2.提交审核,在邀请測试员的时候,你必须先提交审核,苹果会在大约2个工作 ...
- Q_PROPERTY介绍
QT提供了一个成熟的属性系统,但是作为一个跨平台的且与编译器无关的库,qt不依赖于非标准的编译器功能例如 __property or [property]: QT的强大之处在于它可以支持任何标准的c+ ...
- Bitmap OutOfMemoryError
在创建Bitmap的时候因为对象过多而没有即使回收,导致的内存不足: java.lang.OutOfMemoryError E/AndroidRuntime(21898): at androi ...
- eclipse myeclipse 中的server的配置
(1)本身tomcat的环境配置就是一个很麻烦的事,一不小心,标点错了,少了,根本就起不来. (2)当同一个PC上.装有多个tomcat的话,更是混乱不堪,不仅每个server.xml文件的port号 ...
- # mysqlbinlog mysql-bin.000004 mysqlbinlog: unknown variable 'default-character-set=utf8'
# mysqlbinlog mysql-bin.000004 mysqlbinlog: unknown variable 'default-character-set=utf8' 加上--no-def ...