SPFA
/*
查看题目 Show Problem
题目:星门跳跃
问题编号:341 [提交该题] [讨论该问题] [有关讨论] [Who AC] [相关题解] [最优解]
My Flag:Accepted
题目类型
最短路
描述
在EVE游戏中,宇宙被划分成为许多区域,每个区域中都有数目不定的星门,可以通过星门来跳跃到特定的区域(星门是双向的)。
现在你正参与BBE联军与MLGBD联盟的会战,但由于飞船受损,需要尽快回到后方的友军空间站进行维护。
试编写程序,计算出所须的最短的返回空间站时间。
为了简化问题,我们约定飞船所在的位置为区域1,空间站所在的位置为区域N。
问题规模:
对于80%的数据,1len)){
dis[pp->adjvex]=dis[i]+pp->len;
if (!mark[pp->adjvex])
{
mark[pp->adjvex]=true;
que[rear++]=pp->adjvex;
rear%=1000001;
}
}
pp=pp->next;
}
}
}
int main (void){
int a,b,s;
scanf ("%d %d",&n,&m);
for (int i=0;iadjvex=a;
p1->len=s;
p1->next=ps[b].head;
ps[b].head=p1;
p2->adjvex=b;
p2->len=s;
p2->next=ps[a].head;
ps[a].head=p2;
}
spfa();
printf("%d",dis[n]);
//while (1);
return 0;
}