您的位置:首页 > 其它

poj2485

2016-03-30 15:02 309 查看
用GCC交一直WA,但是用C一下就过了,有大神的话告诉我原因吧,比较简单的一个问题,直接上代码了

//
// main.c
// poj2485
//
// Created by MacBookAir on 16/3/29.
// Copyright ? 2016年 MacBookAir. All rights reserved.
//

#include <stdio.h>
#include<string.h>
int dis[510][510];
int visit[510],lowcost[501];
int N;
int prim()
{
int i,j,low=65536,pos,max;
memset(visit,0,sizeof(visit));
visit[1]=1;
for(i=2;i<=N;i++)
{
if(i!=1)
lowcost[i]=dis[1][i];
}
for(i=1;i<=N;i++)
{
low=65535;
for(j=2;j<=N;j++)
{
if(lowcost[j]<low&&visit[j]==0)
{
low=lowcost[j];
pos=j;
}
}
visit[pos]=1;
if(max<lowcost[pos])
{
max=lowcost[pos];
}
for(j=1;j<=N;j++)
{
if(dis[pos][j]<lowcost[j]&&visit[j]==0)
{
lowcost[j]=dis[pos][j];
}
}
}
return max;
}
int main(int argc, const char * argv[])
{
int T,i,j,max;
scanf("%d",&T);
while(T--)
{
scanf("%d",&N);
memset(dis,0,sizeof(dis));
for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++)
{
scanf("%d",&dis[i][j]);
}
}
max=prim();
printf("%d\n",max);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: