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

poj 2485 highways(prim)

2018年03月17日 ⁄ 综合 ⁄ 共 766字 ⁄ 字号 评论关闭
题意:求连通n个城市间所需最短路径中最长的
思路:prim

#include "stdio.h"
#define M 505
#define MAX 65537
int map[M][M];

void prim (int n)
{
    int
cost[M],flag[M],i,j,k,min,sum = 0;
    for (i = 0;i
< n;i ++)
    {
       
cost[i] = map[0][i];
       
flag[i] = 0;
    }
    flag[0] =
1;
    for (i = 1;i
< n;i ++)
    {
       
min = MAX;
       
for (j = 1;j < n;j ++)
           
if (flag[j]==0&&cost[j]
< min)
           
{
               
min = cost[j];
               
k = j;
           
}
       
flag[k] =1;
       
sum =
cost[k]>sum?cost[k]:sum;   
//最短路径中最大的
       
for (j = 1;j < n;j ++)
           
if (cost[j] > map[k][j])
               
cost[j] = map[k][j];
                                           
//原来处理完后,cost保存的并不是每个最小值
    }
    printf
("%d\n",sum);
}
int main ()
{
    int
t,n,i,j;
    scanf
("%d",&t);
    while (t
--)
    {
       
scanf ("%d",&n);
       
for (i = 0;i < n;i ++)
           
for (j = 0;j < n;j ++)

抱歉!评论已关闭.