HDoj-1233-还是畅通project-prim算法
还是畅通project
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 25888 Accepted Submission(s): 11530
problem Description
某省调查乡村交通状况。得到的统计表中列出了随意两村庄间的距离。省政府“畅通project”的目标是
使全省不论什么两个村庄间都能够实现公路交通(但不一定有直接的公路相连。仅仅要能间接通过公路可达就可以),
并要求铺设的公路总长度为最小。请计算最小的公路总长度。
Input
測试输入包括若干測试用例。
每一个測试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行相应村庄间的距离,
每行给出一对正整数。各自是两个村庄的编号。以及此两村庄间的距离。为简单起见。村庄从1到N编号。当N为0时,
输入结束,该用例不被处理。
Output
对每一个測试用例,在1行里输出最小的公路总长度
Sample Input
3
1 2 1
1 3 2
2 3 4
4
1 2 1
1 3 4
1 4 1
2 3 3
2 4 2
3 4 5
0
Sample Output
3
5
#include<stdio.h>
#include<string.h>
#define N 1000000
int map[110][110];
int prim(int n)
{
int used[110],lowcost[110],i,j,k,min,sum=0;//sum
memset(used,0,sizeof(used));
memset(lowcost,0,sizeof(lowcost));
for(i=1;i<=n;i++)
{
lowcost[i]=map[i][1];
}
for(i=1;i<n;i++)
{
min=N;
for(j=2;j<=n;j++)
{
if(min>lowcost[j] && used[j]==0)
{
min=lowcost[j];
k=j;
}
}
sum+=min;
used[k]=1; //used[k]=0;
for(j=1;j<=n;j++)
{
if(used[j]==0 && lowcost[j]>map[k][j])
lowcost[j]=map[k][j];
}
}
return sum;
}
int main()
{
int n,m,i,j,a,b,c;
while(~scanf("%d",&n),n)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(i==j)
map[i][j]=0;
else
map[i][j]=N;
}
}
m=n*(n-1)/2;
for(i=0;i<m;i++){
scanf("%d%d%d",&a,&b,&c);
map[a][b]=map[b][a]=c;
}
printf("%d\n",prim(n));
}
return 0;
}
HDoj-1233-还是畅通project-prim算法的更多相关文章
- Kruskal HDOJ 1233 还是畅通工程
题目传送门 /* 最小生成树之kruskal算法--并查集(数据结构)实现 建立一个结构体,记录两点和它们的距离,依照距离升序排序 不连通就累加距离,即为最小生成树的长度 */ #include &l ...
- hdu 1233(还是畅通project)(prime算法,克鲁斯卡尔算法)(并查集,最小生成树)
还是畅通project Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- HDU-1233 还是畅通工程 (prim 算法求最小生成树)
prim 算法求最小生成树 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- hdoj 1233 还是畅通工程(最小生成树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1233 思路分析:该问题为最小生成树问题,使用kruskal算法或者prim算法即可解决: 代码如下: ...
- 杭电1233还是畅通project
还是畅通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 还是畅通project (克鲁斯卡尔裸题)
还是畅通project Time Limit: 4000/2000 MS (Java/Others) M ...
- hdoj 1233 还是畅通工程---最小生成树---prime算法
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1233 可以用Kruskal来做,不过当图的边比较稠密的时候用prime会更快一些. AC代码:296MS ...
- Hdoj 1233.还是畅通工程 题解
Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直 ...
- hdu 1233 还是畅通工程 (prim, kruskal)
还是畅通工程Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
随机推荐
- 抓取js动态生成数据
最近在抓数据,一般的网页数据抓取相对容易一些,今天在抓电视猫的节目单,发现有些数据时抓取不到的,Java端得到的HTML文件里面没有某一段代码,查了很多资料,发现说是js动态生成的数据,无法直接抓取, ...
- 12小时制时间&&24小时制时间
今天在获取时间的时候发现,插入到数据库中的时间,其中下午的时间直接显示01,02的样子...查了下资料发现了端倪, java.text.SimpleDateFormat f=new java.text ...
- 【Luogu】P4462异或序列(莫队)
题目链接 观察什么时候x到y之间那一段可以被统计 xorsum[x-1]^xorsum[y]=k xorsum[x-1]=xorsum[y]^k||xorsum[y]=xorsum[x-1]^k 莫队 ...
- CCC2019游记
好吧其实是清华游记,$CCC2019$ 在中国只有北京和天津举办,要选去加拿大的人很少,估计是最近两国关系有点紧张的缘故吧 但实际上是某些已经被清华钦点的人去预览一下他们未来的栖息所 $13:30$ ...
- Java面试题之如何防止重复下单问题?
在电商环境下,如何防止重复下单这种问题,很常见,并且解决方案有很多种,我经过百度,并且加入我的理解唠嗑几句: 流程: ①当进入商品详情页时,去生成一个全局唯一ID(可用雪花算法): ②将这个全局唯一I ...
- 洛谷 [P1608] 最短路计数
最短路计数模版 本题要注意重边的处理 #include <iostream> #include <cstdio> #include <algorithm> #inc ...
- 案子前申請 EVB board (Evaluation Board)
在跑案子前, 需向各 component vendor 申請 EVB board, 其中也包含 mosfet , 以利做實驗, spec 有可能會寫錯 或不清楚, 所以需要使用 EVB board 檢 ...
- 记Django数据库迁移过程中遇到的一些问题
首先描述一下问题,Django 数据库使用的mysql, 然后开始没注意,没建一个default库,就把第一个数据库当成默认的了,结果Django的admin相关的那些表,都自动生成到这个库里了,现在 ...
- 有道词典中的OCR功能:第三方库的变化
之前有点好奇有道词典中的OCR功能,具体来说就是强力取词功能.我知道的最有名的OCR库是tesseract,这个库是惠普在早些年前开源的. 在用python做爬虫处理验证码的时候,就会用到这个库,对应 ...
- os模块 文件操作
下面的方法可以在python程序里直接生成文件到系统路径(windows环境下测试): <<<<<<要注意字符串前面要加字母r>>>>> ...