hdu-1233-还是畅通工程
2014-03-08 21:08
405 查看
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M 1000000
int map[105][105];
int prim(int n)//普里姆算法
{
int min,i,j,k,sum=0;
int used[105]={0},dis[105]={0};
for(i=1;i<=n;i++)
dis[i]=map[i][1];//与顶点 1 相连的顶点
for(i=2;i<=n;i++)
{
min=M;
for(j=2;j<=n;j++)
if(min>dis[j]&&used[j]==0)
{
min=dis[j];
k=j;
}
sum+=min;
used[k]=1;
for(j=1;j<=n;j++)
if(used[j]==0&&dis[j]>map[k][j])
{
dis[j]=map[k][j];
}
}
return sum;
}
int main()
{
int n,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]=M;
for(i=0;i<n*(n-1)/2;i++)
{
scanf("%d%d%d",&a,&b,&c);
map[a][b]=map[b][a]=c;
}
printf("%d\n",prim(n));
}
return 0;
}
#include<string.h>
#include<stdlib.h>
#define M 1000000
int map[105][105];
int prim(int n)//普里姆算法
{
int min,i,j,k,sum=0;
int used[105]={0},dis[105]={0};
for(i=1;i<=n;i++)
dis[i]=map[i][1];//与顶点 1 相连的顶点
for(i=2;i<=n;i++)
{
min=M;
for(j=2;j<=n;j++)
if(min>dis[j]&&used[j]==0)
{
min=dis[j];
k=j;
}
sum+=min;
used[k]=1;
for(j=1;j<=n;j++)
if(used[j]==0&&dis[j]>map[k][j])
{
dis[j]=map[k][j];
}
}
return sum;
}
int main()
{
int n,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]=M;
for(i=0;i<n*(n-1)/2;i++)
{
scanf("%d%d%d",&a,&b,&c);
map[a][b]=map[b][a]=c;
}
printf("%d\n",prim(n));
}
return 0;
}
相关文章推荐
- 【学习笔记】〖九度OJ〗题目1138:进制转换
- Java 如何同步顺序执行多个线程
- 【学习笔记】〖九度OJ〗题目1138:进制转换
- codeforces round #234B(DIV2) A Inna and Choose Options
- OGG_GoldenGate数据库配置DDL同步(案例)
- JavaScript 自定义对象 for in
- 四位高科技女性创业者的忠告:可以向前一步
- 连接 Oracle 协议适配器错误 的解决方案
- 软件单元测试与规范
- 回调机制与监听机制
- Hibernate4.3.2 + Mysql + eclipse配置
- 【经典排序算法】归并排序
- JavaScript prototype 属性
- 转换有序链表成二叉搜索树
- 怎样获取网页的SessionId
- codeforces round #234B(DIV2) B Inna and New Matrix of Candies
- dede用户登录时,跳转到提示页时报404错误
- C# Windows Phone 8 WP8 , 文字超连结到网页 免打程式码,Xaml就搞定 ! !
- 6个重构方法可帮你提升 80% 的代码质量
- dede用户登录时,跳转到提示页时报404错误