#include<bits/stdc++.h>
using namespace std;
class ren{
public:
int l;
int t;
int jie;
ren(){
jie=0;
t=-1;
l=-1;
}
};
//5 5
//0 1 0 1 1
//1 2 0 2 1
//1 4 0 1 1
//2 3 0 1 1
//4 3 0 1 1
//0 3
int n,m;
int dist[505],path[505],ti[505],path1[505];
int pre[505];
int jie[505];
int t1[505],tj=0;
int d1[505],dj=0;
ren r[505][505];
bool collect[505],collect1[505];
void Dijkstra(int q){
// for(int i=0;i<505;i++){
// dist[i]=10000;
// path1[i]=-1;
// collect1[i]=0;
// jie[i]=10000;
// }
// dist[q]=0;
// jie[q]=0;
pre[q]=0;
while(1){
int v=q;
for(int i=0;i<n;i++){
if(collect[i]!=1&&(ti[i]<ti[v]||collect[v]==1)){
v=i;
}
}
if(collect[v]==1){
break;
}
collect[v]=1;
for(int i=0;i<n;i++){
if(r[v][i].t>0){
if(collect[i]==false){
if(ti[v]+r[v][i].t<ti[i]){
sdffsadf
这是一个C++实现的Dijkstra算法,用于解决最短路径问题。程序定义了一个ren类,并通过Dijkstra函数计算从起点到各个点的最短时间和距离。在main函数中,程序读取输入的图信息并输出最短时间和路径。
摘要由CSDN通过智能技术生成