现在的位置: 首页 > 综合 > 正文

1090. Highways

2019年11月11日 ⁄ 综合 ⁄ 共 529字 ⁄ 字号 评论关闭
以前上网看了看,prim算法比较好理解
#include<iostream>
using namespace std;
int main()
{
 int t, n, i, j, road[501][501],add, min, max, dist[501];
 bool in[501];
 cin >> t;
 while(t--)
 {
 cin >> n;
 for(i = 1; i <= n; i++)
  for(j = 1; j <= n; j++)
   cin >> road[i][j];
   for(i = 1; i <= n; i++)
     {
     in[i] = false;
     dist[i] = 65537;
     }
     max = 0;
     in[0] = true;
     for(i = 1; i <=n; i++)
       dist[i] = road[1][i];
     for(j = 1; j <=n; j++)
       {
       min = 65537;
       for(i = 1; i <=n; i++)
        {
         if(!in[i]&&dist[i]<min)
          {
          add = i;
          min = dist[i];
          }
        }
      in[add] = true;
      for(i = 1; i <=n; i++)
        if(!in[i]&&road[add][i] < dist[i])
          dist[i] = road[add][i];
        if(max < min) max = min;
       } 
    cout << max << endl;
    if(t) cout << endl;
 }
}               

      

抱歉!评论已关闭.