继续畅通工程

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10739    Accepted Submission(s): 4692

Problem Description
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。
 
Input
测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( 1< N < 100 );随后的 N(N-1)/2 行对应村庄间道路的成本及修建状态,每行给4个正整数,分别是两个村庄的编号(从1编号到N),此两村庄间道路的成本,以及修建状态:1表示已建,0表示未建。
当N为0时输入结束。
 
Output
每个测试用例的输出占一行,输出全省畅通需要的最低成本。
 
Sample Input
3
1 2 1 0
1 3 2 0
2 3 4 0
3
1 2 1 0
1 3 2 0
2 3 4 1
3
1 2 1 0
1 3 2 1
2 3 4 1
0
 
Sample Output
3
1
0
#include <iostream>
#include <cstdlib>
using namespace std; int father[],k; struct sum
{
int a;
int b;
int c;
int d;
}num[]; //路线数 int cmp(const void *x,const void *y) //按长度从小到大快排,
{
return (*(sum *)x).c - (*(sum *)y).c;//原理有待研究
} /*
int Find(int a) //找到a所在家族的祖先并路径上成员指向祖先
{
return a==father[a] ? a : father[a]=Find(father[a]);
}*/ int Find(int x) //找出祖先
{
while(x!=father[x])
x=father[x];
return x;
} void Union(int a,int b,int i)
{
if(a!=b)
{
father[a]=b;
if(num[i].d==)
k+=num[i].c; //并入家族且把长度加上来
}
} int main()
{
int n,m,i;
while(scanf("%d",&n),n)
{
m=n*(n-)/;
for(i=;i<=n;i++)
father[i]=i;
for(i=;i<m;i++)
scanf("%d%d%d%d",&num[i].a,&num[i].b,&num[i].c,&num[i].d);
for(i=;i<m;i++)
{
if(num[i].d==)
Union(Find(num[i].a),Find(num[i].b),i);
}
qsort(num,m,sizeof(num[]),cmp);//排序
for(i=k=;i<m;i++)
{
if(num[i].d==)
Union(Find(num[i].a),Find(num[i].b),i);
}
printf("%d\n",k);
}
return ;
}
/*
思路:
先把建好路的找出来,祖先指向一处,然后接下来从小到大排序,把没连通的再连起来。把成本相加 就这么奇迹般的过了,,,哈哈 3
1 2 1 0
1 3 2 0
2 3 4 0
3
1 2 1 0
1 3 2 0
2 3 4 1
3
1 2 1 0
1 3 2 1
2 3 4 1
0 */

互相交流,才能提高!!

继续畅通工程(hdu1879)并查集的更多相关文章

  1. HDU 1232 畅通工程 (并查集)

    某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可). ...

  2. HDU 1232:畅通工程(并查集模板)

    畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  3. hdu 1232 畅通工程(并查集算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 畅通工程 Time Limit: 4000/2000 MS (Java/Others)    M ...

  4. hdu畅通工程(并查集)

    Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道 ...

  5. HDU1232 畅通工程---(经典并查集应用)

    http://acm.hdu.edu.cn/showproblem.php?pid=1232 畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory ...

  6. hdu 1863 畅通工程(Kruskal+并查集)

    畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  7. 题解报告:hdu 1232 畅通工程(并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了 ...

  8. HDU 1863 畅通工程 (并查集)

    原题链接:畅通工程 题目分析:典型的并查集模版题,这里就不详细叙述了.对算法本身不太了解的可以参考这篇文章:并查集算法详解 代码如下: #include <iostream> #inclu ...

  9. 【HDU1232】畅通工程(并查集基础题)

    裸敲并查集,很水一次AC #include <iostream> #include <cstring> #include <cstdlib> #include &l ...

  10. 畅通工程--hdu1232(并查集)

    畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

随机推荐

  1. ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下

    先简单了解一这个几个 名词的意思. 控制反转(IOC) 依赖注入(DI) 并不是某种技术. 而是一种思想.一种面向对象编程法则 什么是控制反转(IOC)?  什么是依赖注入(DI) 可以点击下面链接 ...

  2. 剑指offer编程题Java实现——面试题4替换空格

    题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. package Solution; ...

  3. 《Linux-基础篇笔记》 Vim编辑器(二)

    Linux图形化界面下的文本编辑器 gedit . libre office . evince PDF阅读器 ①gedit是一个GNOME桌面环境下兼容UTF-8的文本编辑器.它使用GTK+编写而成, ...

  4. PHP程序员职业发展路线

    重点:把LNMP搞熟练(核心是安装配置基本操作) 1.Linux: 基本命令.操作.启动.基本服务配置(包括rpm安装文件,各种服务配置等): 会写简单的shell脚本和awk/sed 脚本命令等. ...

  5. 解决ssh远程连接错误问题

    使用 Xshell 远程连接服务器时,经常会出现这么个错误提示 WARNING! The remote SSH server rejected X11 forwarding request. ➜ ~ ...

  6. .net core Error -4090 EADDRNOTAVAIL address not available”

    问题原因:IP地址错误或者网络未开

  7. maven封装jar包遇到的问题

    使用eclipse编译后可以生成jar包,使用mvn clean package指令打包报错,错误如下:No compiler is provided in this environment. Per ...

  8. Java获取随机数获取制定范围指定个数不重复的随机数

    一.JDK中提供的两种方式 1.Math类中的random()方法public static double random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0 [0. ...

  9. 在Android中调用KSOAP2库访问webservice服务出现的服务端返回AnyType{}

    最近在做毕业设计的时候,涉及到了安卓端访问web service服务端数据库,并返回一个值,当我把web service测试通过后,想写一个简单的安卓测试程序,来实现服务端数据库访问,通过web se ...

  10. jenkins持续集成的步骤

    项目的持续集成分享 源代码管理 项目仓库 配置仓库 发布仓库 ci/cd相关 gitlab,管理版本,测试流水线 jenkins,对项目进行持续集成 各模块的关系 graph TD a(jenkins ...