无声的月
POJ 1251 最小生成树 prim
#include
<
iostream
>
using
namespace
std;
const
int
MAXV
=
30
;
const
int
INF
=
1000
;
int
cost[MAXV][MAXV],n,v;
int
Prim(
int
cost[][MAXV],
int
n,
int
v)
{
int
lowcost[MAXV],min1;
int
closest[MAXV],i,j,k,sum;
sum
=
0
;
for
(i
=
0
;i
<
n;i
++
)
{
lowcost[i]
=
cost[v][i];
closest[i]
=
v;
}
lowcost[
0
]
=
0
;
for
(i
=
1
;i
<
n;i
++
)
{
min1
=
INF;
for
(j
=
0
;j
<
n;j
++
)
{
if
(lowcost[j]
!=
0
&&
lowcost[j]
<
min1)
{
min1
=
lowcost[j];
k
=
j;
}
}
sum
+=
min1;
lowcost[k]
=
0
;
for
(j
=
0
;j
<
n;j
++
)
{
if
(cost[k][j]
!=
0
&&
cost[k][j]
<
lowcost[j])
{
lowcost[j]
=
cost[k][j];
closest[j]
=
k;
}
}
}
return
sum;
}
int
main()
{
int
i,j,n,u,v,k,w;
char
ch;
while
(cin
>>
n,n)
{
for
(i
=
0
;i
<
n;i
++
)
for
(j
=
0
;j
<
n;j
++
)
cost[i][j]
=
INF;
for
(j
=
0
;j
<
n
-
1
;j
++
)
{
cin
>>
ch;
u
=
ch
-
'
A
'
;
cin
>>
k;
for
(i
=
0
;i
<
k;i
++
)
{
cin
>>
ch;
v
=
ch
-
'
A
'
;
cin
>>
w;
cost[u][v]
=
w;
cost[v][u]
=
w;
}
}
cout
<<
Prim(cost,n,
0
)
<<
endl;
}
}
posted on 2010-07-23 15:10
Baron
阅读(138)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
导航
C++博客
首页
新随笔
联系
聚合
管理
统计
随笔 - 4
文章 - 1
评论 - 0
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
查询(1)
(rss)
数据结构和算法
(rss)
搜索(1)
(rss)
图算法
(rss)
网络流
(rss)
随笔档案
2010年8月 (1)
2010年7月 (2)
2010年6月 (1)
文章分类
图算法
(rss)
文章档案
2010年7月 (1)
搜索
最新评论
阅读排行榜
1. poj 2251 BFS 三维迷宫(393)
2. POJ 1459 最大流 Edmonds-Karp算法 (350)
3. a^b mod n 求最大公约数,及其扩展(286)
4. RMQ POJ 3264 Balanced Lineup (215)
评论排行榜
1. a^b mod n 求最大公约数,及其扩展(0)
2. POJ 1459 最大流 Edmonds-Karp算法 (0)
3. poj 2251 BFS 三维迷宫(0)
4. RMQ POJ 3264 Balanced Lineup (0)
Powered by:
C++博客
Copyright © Baron