题目描述
输入输出样例
输入 #1
5 6 1 2 2 2 5 5 2 3 4 1 4 1 4 3 3 3 5 1
输出 #1
1 4 3 5
分析: 根据题目描述可以使用Dijkstra,再定义一个数组记录路径,注意:0<=m<=10^5,所以不能用int,要用long long,如果不存在这种路径输出-1
代码实现
#include<bits/stdc++.h>
using namespace std;
bool flag[100009];
long long dist[100009],path[100009];
long long n,m,u,v,w;
struct Node{
int id;
int dist;
Node(){
}
Node(int i,int d){
id=i;
dist=d;
}
friend bool operator <(Node a,Node b){
return a.dist>b.dist;
}
};
vector<Node>vt[100009];
priority_queue<Node>pque;
void Dijkstra(){
memset(dist,0x7f,sizeof(dist));
dist[1]=0;
pque.push(Node(1