小明居住在h城,这一个地区算上h城共有n个城市,n个城市之间共有m条单行道,小明想要知道n个城市中每一个城市到达h城的道路距离,并且将这些距离按照从小到大顺序排列好输出
现在请你帮帮小明
现在请你帮帮小明
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int n,m,h; //n代表城市数量,m代表道路数(全部为单向路),h代表小明出发城市代号
int u[5000]={0},v[5000]={0},w[5000]={0};//用来储存此道路出发城市u[i]---目的城市v[i]的距离w[i]
int first[5000]={0},next[5000]={0}; //在邻接表中使用first[i]数组储存城市i最后一条公路(也可以说是第一条,反正最后会遍历)
int dis[5000]={0}; //用来储存每个城市距离城市h的最小距离;初始化全部为inf;本身为0
int book[5000]={0};
int inf=99999999;
memset(first,-1,sizeof(first));
memset(next,-1,sizeof(next));
memset(book,0,sizeof(book));
cin>>n>>m>>h;
for(int i=0;i<=n;i++){
dis[i]=inf;
}
dis[h]=0;