版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/lx417147512/article/details/27092583

***************************************转载请注明出处:http://blog.csdn.net/lttree***************************************

继续畅通project

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

Problem Description
省政府“畅通project”的目标是使全省不论什么两个村庄间都能够实现公路交通(但不一定有直接的公路相连,仅仅要能间接通过公路可达就可以)。现得到城镇道路统计表,表中列出了随意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编敲代码,计算出全省畅通须要的最低成本。
 

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
 

Author
ZJU
 

Source
 

题目:

pid=1879" rel="nofollow">http://acm.hdu.edu.cn/showproblem.php?pid=1879

继续畅通project,最小生成树(MST)。

不说最小生成树,直接说MST,是不是显得高大上啊~

嘿嘿~~~
这道题,依然是求最小生成树。比起赤裸裸加了几块布。
比方,有些路已经修建了。
已经修建的路就不须要耗费你不论什么东西,所以cost=0
没有告诉你边数有多少。
事实上题目中说了 边数=n*(n-1)/2
剩下的,求MST吧~ 。我用的Kruskal求:
/****************************************
*****************************************
* Author:Tree *
*From :http://blog.csdn.net/lttree *
* Title : 继续畅通project *
*Source: hdu 1879 *
* Hint : 最小生成树(MST-Prim) *
*****************************************
****************************************/ #include <stdio.h>
#include <algorithm>
using namespace std;
struct Road
{
int u,v,c;
}r[10001];
int n,m,father[10001];
bool cmp(Road r1,Road r2)
{
return r1.c<r2.c;
} // 并查集系列函数 1-初始化 2-查找 3-合并
void Init( int n )
{
int i;
for(i=1;i<=n;++i)
father[i]=i;
}
int Find(int m)
{
while( father[m]!=m )
{ m=father[m]; }
return m;
}
void Combine( int a,int b)
{
int temp_a,temp_b;
temp_a=Find(a);
temp_b=Find(b); if( temp_a!=temp_b )
father[temp_a]=temp_b;
} int Kruskal( void )
{
sort(r,r+m,cmp);
Init(n);
Road rd;
int i,res; // 构建最小生成树
res=0;
for( i=0;i<m;++i )
{
rd=r[i];
if( Find(rd.u)!=Find(rd.v) )
{
Combine(rd.u,rd.v);
res+=rd.c;
}
}
return res;
} int main()
{
int i,start,finish,cost,iscon; while( scanf("%d",&n) && n )
{
// 求边的数量
m = n*(n-1)/2;
for( i=0;i<m;++i )
{
scanf("%d%d%d%d",&start,&finish,&cost,&iscon);
r[i].u=start;
r[i].v=finish;
// 假设道路已经修建。消耗设置为0,不须要我们再去建立道路
if( iscon ) r[i].c=0;
else r[i].c=cost;
}
printf("%d\n",Kruskal());
}
return 0;
}

ACM-最小生成树之继续畅通project——hdu1879的更多相关文章

  1. hdu1879 继续畅通project(最小生成树)

    继续畅通project Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  2. HDU1863 畅通project 【最小生成树Prim】

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

  3. HDU 1863 畅通project (最小生成树是否存在)

    题意 中文 入门最小生成树  prim大法好 #include<cstdio> #include<cstring> using namespace std; const int ...

  4. hdu 1233(还是畅通project)(prime算法,克鲁斯卡尔算法)(并查集,最小生成树)

    还是畅通project Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  5. 8-06. 畅通project之局部最小花费问题(35)(最小生成树_Prim)(ZJU_PAT)

    题目链接:http://pat.zju.edu.cn/contests/ds/8-06 某地区经过对城镇交通状况的调查.得到现有城镇间高速道路的统计数据,并提出"畅通project" ...

  6. hdu1863 畅通project(判定最小生成树)

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

  7. hdu 1875 畅通project再续(kruskal算法计算最小生成树)

    畅通project再续 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  8. hdu 1233 还是畅通project(kruskal求最小生成树)

    还是畅通project Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  9. hdoj 1875 畅通project再续【最小生成树 kruskal &amp;&amp; prim】

    畅通project再续 Problem Description 相信大家都听说一个"百岛湖"的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其它的小岛时都要通过划小船来实现. ...

随机推荐

  1. 关于ng-router嵌套使用和总结

    那是某个下午的review代码的过程.js中有一段html,像是这样. var html = '<div>...此处还有很多html代码....</div>' 我的同事想我提出 ...

  2. Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.

    1.Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'. 原因解析: gradle ...

  3. jQuery 技术揭秘

    1.平时jquery调用页: index.html : <!DOCTYPE html> <html lang="en"> <head> < ...

  4. JavaScript Array splice函数

    // 原来的数组 var array = ["one", "two", "four"]; // splice(position, numbe ...

  5. Android 冷兵器 之 tools

    代码地址如下:http://www.demodashi.com/demo/12612.html 前言 Android开发在所难免的就是UI的预览和调整,一般情况下都是直接run看效果,或者是使用AS的 ...

  6. (七)Thymeleaf的 th:* 属性之—— th: ->设值& 遍历迭代& 条件判断

    3.4 属性值的设置 3.4.1 使用th:attr来设置属性的值 <form action="subscribe.html" th:attr="action=@{ ...

  7. zabbix监控第二块网卡是否连通

    配置zabbix客户端配置文件 vim /etc/zabbix/zabbix_agentd.conf 添加  Include=/etc/zabbix/zabbix_agentd.d/ 添加脚本检测网卡 ...

  8. Arcgis:什么是栅格数据类型

    栅格数据单元大小 栅格所表示的内容的详细程度(要素现象)通常取决于栅格的单元(像素)大小或空间分辨率. 单元必须足够小,这样才可以捕获到所需的详细信息: 而单元又必须足够大,这样才可以提高计算机存储和 ...

  9. u-boot README--Memory Management&initialize

    Memory Management:------------------ U-Boot runs in system state and uses physical addresses, i.e. t ...

  10. Ueditor编辑器图片上传到万象优图

    最近想用typecho做一个个人博客站,typecho的文本编辑器不能上传图片,我就用Ueditor替换的了原来的文本编辑器,听说腾讯的万象优图每月有50G的免费空间和流量,我就自己改了下Uedito ...