zoukankan      html  css  js  c++  java
  • sicily 1090 Highways

    求最小生成树的长度最小的边,我用的是prim算法:

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 using namespace std;
     5 
     6 const int INF=0x3f3f3f3f;
     7 int map[505][505];
     8 int visit[505];
     9 int dis[505];
    10 int ans[505];
    11 
    12 //最小生成树 
    13 int prim(int n, int cur) //从哪个点开始都可以 
    14 {
    15     memset(ans, 0, sizeof(ans));
    16     visit[cur] = 1;
    17     int index;
    18     int count=0;
    19     for(int i=1; i<=n; i++)
    20         dis[i] = map[cur][i]; //dis[i]为到每个相邻顶点的最小距离 
    21     
    22     for(int i=2; i<=n; i++)
    23     {
    24         int minn = 0x3f3f3f3f;
    25         for(int j=1; j<=n; j++)
    26         {
    27             if(!visit[j] && dis[j] < minn)
    28             {
    29                 minn = dis[j];
    30                 index = j;
    31             } 
    32         }
    33         visit[index] = 1;
    34         ans[count++] = minn;
    35         
    36         for(int j=1; j<=n; j++)
    37             if(!visit[j] && dis[j] > map[index][j])
    38                 dis[j] = map[index][j];
    39     }
    40     return count;
    41 }
    42 
    43 int main()
    44 {
    45     int t, n;
    46     scanf("%d", &t);
    47     int k=0;
    48     while(t--)
    49     {
    50         if(k==0)
    51             k++;
    52         else
    53             printf("
    ");
    54         memset(dis, 0, sizeof(dis));
    55         memset(map, 0, sizeof(map));
    56         memset(visit, 0, sizeof(visit));
    57         
    58         scanf("%d", &n);
    59         for(int i=1; i<=n; i++)
    60             for(int j=1; j<=n; j++)
    61             {
    62                 map[i][j] = INF; 
    63                 scanf("%d", &map[i][j]);
    64             }
    65         int cnt = prim(n, 1);
    66         sort(ans, ans+cnt);
    67         printf("%d
    ", ans[cnt-1]);
    68     }
    69     return 0;
    70 }
  • 相关阅读:
    webSQL 实现即时通讯
    微信开发(微信公众号)
    回顾 git 常用命令
    面向对象的 javascript
    关于HTML、js加密、混淆、源码保护、代码安全,防止解压直接看源码
    svn 的使用
    css新单位 vw , vh
    图片转成base64, base64转成图片
    EL表达式
    jsp页面获取集合的长度
  • 原文地址:https://www.cnblogs.com/dominjune/p/4506756.html
Copyright © 2011-2022 走看看