#include #include #include using namespace std;const int N = 100;const int INF = 0x3f3f3f3f;struct Edge{ //用于记录一组关系 int u,v,w;};vector edge[N]; //用于保存图的关系int flag[N]; //用于标记是否在队列中int dis[N]; //源点到各点的最短距离int path[N]; //源点到各点的路径int road[N]; //用于逆向追中输出路径void init(int n){ for(int i=0;i
q; //定义一队列来维护 q.push(v); //把源点放进队列开始扩展 while(!q.empty()){ int temp = q.front(); //取队列的第一个点进行扩展 q.pop(); //出列 flag[temp]=false; //出列后标记为false for(i=0;i
",road[k--]); } printf("%d\n",road[k]); } } return 0;} 蓝桥: http://lx.lanqiao.org/problem.page?gpid=T15