请大家帮帮找找错误啊 都郁闷死了
杭电 http://acm.hdu. 这题我的代码如下,自己测了很多数据都是对的 为什么就不给我AC啊 求错哪了,知道的情速度回答,高分答谢 , 我是用迪杰特拉算法做的 #include<stdio.h>
int mp[300][300],flag[300],d[300];
int chengshi,lu,begin,end,max=9999999,min;
void dfs(int x)
{
int i,j,v;
v=x;
for(i=0;i<chengshi;i++)
d[i]=mp[x][i];
flag[x]=1;
for(i=0;i<chengshi;i++)
{
min=max;
for(j=0;j<chengshi;j++)
if(d[j]<min && flag[j]==0)
{
min=d[j];
v=j;
}
if(min==max) break;
flag[v]=1;
for(j=0;j<chengshi;j++)
if(flag[j]==0 && mp[v][j]+min<d[j])
d[j]=mp[v][j]+min;
}
}
int main()
{
int i,j,a,b,w;
while(scanf("%d%d",&chengshi,&lu)!=EOF)
{
for(i=0;i<chengshi;i++)
{
flag[i]=0;
for(j=0;j<chengshi;j++)
mp[i][j]=max;
}
for(i=0;i<lu;i++)
{
scanf("%d%d%d",&a,&b,&w);
mp[a][b]=mp[b][a]=w;
}
scanf("%d%d",&begin,&end);
if(begin==end) printf("0\n");
else
{
dfs(begin);
if(d[end]!=max) printf("%d\n",d[end]);
else
printf("-1\n");
}
}
return 0;
}