旅游规划这个题,其实用floyd也可以做,而且代码看起来更舒服,先给一个floyd的代码(非全原创,侵删),但要注意,由于floyd确实多算了很多无用的数据,如果卡你时间,floyd是过不了的。
#include <bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
int node [505][505];
int dis[505][505];
int main()
{
int n,m,s,d,i,j,k,x,y,q,w;
cin>>n>>m>>s>>d;
memset(dis,INF,sizeof(dis));
memset(node,INF,sizeof(node));
for(int i=0;i<n;i++)
{
dis[i][i]=0;
node[i][i]=0;
}
for(i=0; i<m; i++)
{
scanf("%d %d %d %d",&x,&y,&q,&w);
node[x][y] = node[y][x] = q;
dis[x][y] = dis[y][x] = w;
}
for(k=0; k<n; k++)
{
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if(node[i][j]>node[i][k]+node[k][j]||(n