• 最小生成树prime算法模板


    #include<stdio.h>
    #include<string.h>
    using namespace std;
    int map[505][505];
    int v, e;
    int prime()
    {
      bool vis[505];
      int dist[505];
        int i,j,sum=0;
      for(i=1;i<=v;i++)
      {
        vis[i]=0;
        //先假设编号为1的点加入MST 
        dist[i]=map[1][i];
      }
      vis[1]=1;
      for(i=1;i<v;i++)
      {
        int k,min=0x3f3f3f3f;
        for(j=1;j<=v;j++)
        {
          if(!vis[j]&&dist[j]<min)
          {
            min=dist[j];
            k=j;
          }
        }
        /*
        在这也统计下加入了几天边,判断是否构成MST 
        */
        sum+=dist[k];
        vis[k]=1;
        //下面更新已加入最小生成树的点离其它点的最短距离 
        for(j=1;j<=v;j++)
        {
          if(!vis[j]&&dist[j]>map[k][j])
            dist[j]=map[k][j];
        }
      }
      return sum;
    }
    int main()
    {
      int n;
      int i;
      int waibu;
      scanf("%d", &n);
      while(n--)
      {
        memset(map, 0, sizeof(map));
        scanf("%d %d", &v, &e);
        
        int a, b, c;
        for(i = 0; i< e; i++)
        {
          scanf("%d %d %d", &a, &b, &c);
          map[a][b] = c;
          map[b][a] = c;
        }
        int min = 0x3f3f3f3f;
        for(i = 0; i< v; i++)
        {
          scanf("%d", &waibu);
          if(min > waibu)
            min = waibu;
        }
        printf("%d
    ", prime() + min);
      }
      return 0;
    }       

  • 相关阅读:
    MATLAB相机标定转XMl代码
    摄像头录制及调试
    opencv之常用还是忘,那咋办嘛
    Python贪吃蛇
    Linux指令
    寻找最小矩形边框--OpenCv
    2019 C语言测试
    opencv之重映射
    指针的总计
    图像变换之霍夫变换
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410645.html
Copyright © 2020-2023  润新知