• HDOJ1102 修路问题(最小生成树Prim)


    题目:

    1102 Constructing Roads
     1 #include <cstdio>
     2 #include <cstring>
     3 #include <iostream>
     4 using namespace std;
     5 
     6 #define M 100
     7 #define MAX 9999
     8 
     9 int map[M][M],visited[M],adjset[M];
    10 int n,p,len;
    11 
    12 void ReadMap();
    13 
    14 void main()
    15 {
    16     int i,j,nlen,nid;
    17     while (scanf("%d",&n)!=EOF)
    18     {
    19         //读取地图
    20         ReadMap();
    21         //初始化
    22         memset(visited,0,sizeof(visited));
    23         visited[0] = 1;
    24         len = 0;
    25         for (i=0;i<n;i++)    adjset[i] = map[i][0];
    26         //Begin
    27         for (i=1;i<n;i++)
    28         {
    29             //找到下一条符合条件的点
    30             nlen = MAX;
    31             for (j=0;j<n;j++)
    32             {
    33                 if (!visited[j] && adjset[j]<nlen)
    34                 {
    35                     nlen = adjset[j];
    36                     nid = j;
    37                 }
    38             }
    39             //访问找到的那个点
    40             len += nlen;
    41             visited[nid] = 1;
    42             //更新邻接距离
    43             for (j=0;j<n;j++)
    44             {
    45                 if (!visited[j] && map[j][nid]<adjset[j])
    46                 {
    47                     adjset[j] = map[j][nid];
    48                 }
    49             }
    50         }
    51         cout<<len<<endl;
    52     }
    53 }
    54 
    55 void ReadMap()
    56 {
    57     int i,j,a,b;
    58     for (i=0;i<n;i++)
    59     {
    60         for (j=0;j<n;j++)
    61         {
    62             cin>>map[i][j];
    63         }
    64     }
    65     cin>>p;
    66     for (i=0;i<p;i++)
    67     {
    68         cin>>a>>b;
    69         map[a-1][b-1] = map[b-1][a-1] = 0;
    70     }
    71 }
    字节跳动内推

    找我内推: 字节跳动各种岗位
    作者: ZH奶酪(张贺)
    邮箱: cheesezh@qq.com
    出处: http://www.cnblogs.com/CheeseZH/
    * 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    JS中声明变量的细节问题
    你不知道的var! 细节
    读书笔记:对象的属性
    手写new操作符
    slice
    全相等函数 isEqual
    几个面试题
    全相等函数
    剑指 Offer 29. 顺时针打印矩阵
    剑指 Offer 28. 对称的二叉树
  • 原文地址:https://www.cnblogs.com/CheeseZH/p/2716975.html
Copyright © 2020-2023  润新知