• Prim基础最小生成树


    http://acm.hdu.edu.cn/showproblem.php?pid=1102

     1 <span style="font-size:18px;">#include<stdio.h>
     2 #include<string.h>
     3 #define INF 1001
     4 int map[101][101],vis[101],dist[101];
     5 int n;
     6 int prim()
     7 {
     8     int i,j,mincost=0;
     9     for(i=1;i<=n;i++)       //初始化
    10         dist[i]=map[1][i];
    11     vis[1]=1;
    12     for(i=2;i<=n;i++)   //循环n-1次,每次加入一个点
    13     {
    14         int min=INF,p=1;
    15         for(j=1;j<=n;j++)
    16         {
    17             if(!vis[j]&&dist[j]<min)  
    18             {
    19                 min=dist[j];
    20                 p=j;
    21             }
    22         }
    23         vis[p]=1;                //将p点加入Va中
    24         mincost+=min;
    25         for(j=1;j<=n;j++)       //对于与p相邻的在Vb集合中的j,更新到j的距离最近的点和距离
    26         {
    27             if(!vis[j]&&dist[j]>map[p][j])
    28                 dist[j]=map[p][j];
    29         }
    30     }
    31     return mincost;
    32 }
    33 int main()
    34 {
    35     while(scanf("%d",&n)!=EOF)
    36     {
    37         memset(map,0,sizeof(map));
    38         memset(vis,0,sizeof(vis));
    39         int i,j;
    40         for(i=1;i<=n;i++)
    41             for(j=1;j<=n;j++)
    42             scanf("%d",&map[i][j]);
    43         int q,a,b;
    44         scanf("%d",&q);
    45         while(q--)
    46         {
    47             scanf("%d%d",&a,&b);
    48             map[a][b]=0;
    49             map[b][a]=0;
    50         }
    51         int ans=prim();
    52         printf("%d
    ",ans);
    53     }
    54     return 0;
    55 }
    56 </span>
  • 相关阅读:
    hive 三种启动方式及用途
    Nodejs根据字符串调用对象方法
    Hive原理与不足
    [置顶] 面向领域概念:流的思考
    curl的使用
    mysql知识点总结
    中文字符串反转
    《c陷阱与缺陷》之贪心法
    静态数据成员和静态成员函数
    常成员函数 int fun() const;
  • 原文地址:https://www.cnblogs.com/lyf123456/p/3618888.html
Copyright © 2020-2023  润新知