pku 1287 Networking 好吧,我prim算法的维护策略又写成了djis的了。。。。

题目没什么好说,最小生成树。。。再次NC的把更新策略写成了dij的:len[i]=len[pos]+map[pos][i],该打该打。。
 1# include <stdio.h>
 2# include <string.h>
 3# define N 55
 4int map[N][N];
 5int len[N];
 6int main()
 7{
 8    int n,r,i;
 9    while(1)
10    {
11       int res=0;
12       scanf("%d%d",&n,&r);
13       memset(map,-1,sizeof(map));
14       if(!n) break;
15       while(r--)
16       {
17          int a,b,l;
18          scanf("%d%d%d",&a,&b,&l);
19          if(map[a][b]==-1||map[a][b]>l)
20            map[a][b]=map[b][a]=l;
21       }

22       memset(len,-1,sizeof(len));
23       len[1]=0;
24       for(i=1;i<=n;i++)
25       {
26          int j,min=0xfffffff,pos;
27          for(j=1;j<=n;j++)
28             if(len[j]>=0&&len[j]<min)
29               min=len[j],pos=j;
30          res+=len[pos];
31          len[pos]=-2;
32          for(j=1;j<=n;j++)
33            if(map[pos][j]!=-1&&(len[j]==-1||len[j]>map[pos][j]))
34               len[j]=map[pos][j];
35       }

36       printf("%d\n",res);
37    }

38    return 0;
39}

40

posted on 2010-11-06 16:47 yzhw 阅读(92) 评论(0)  编辑 收藏 引用 所属分类: graphsimple problem~


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2011年1月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

统计

公告

统计系统

留言簿(1)

随笔分类(227)

文章分类(2)

OJ

最新随笔

搜索

积分与排名

最新评论

阅读排行榜