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

poj 1258 Agri-Net(prim)

2018年03月17日 ⁄ 综合 ⁄ 共 720字 ⁄ 字号 评论关闭
基本的最短路径问题

#include "stdio.h"
#define M 105
#define MAX 100005

int map[M][M];
void prim (int n)
{
    int
cost[M],flag[M],i,j,k,min,sum;
    for (i = 0;i
< n;i ++)
    {
       
cost[i] = map[0][i];
       
flag[i] = 0;
    }
    flag[0] =
1;
    sum =
0;
    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];
       
for (j = 1;j < n;j ++)
           
if (cost[j] > map[k][j])
               
cost[j] = map[k][j];
    }
    printf
("%d\n",sum);
}
int main ()
{
    int
n,i,j;
    while (scanf
("%d",&n)!= EOF)
    {
       
for (i = 0;i < n;i ++)
           
for (j = 0;j < n;j++)
           
{
               
scanf ("%d",&map[i][j]);
               
if (i == j)
            

抱歉!评论已关闭.