代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
long long dist[200001],v[200001];
long long n,m,st,qq;
struct P{
long long to,w;
bool friend operator<(P a,P b) {
return a.w>b.w;
}
}tmp;
vector<P>a[200001];
void dijkstra() {
for(long long i=1;i<=n;i++)dist[i]=INT_MAX,v[i]=0;
priority_queue<P>q;
dist[st]=0;
q.push({st,0});
while(!q.empty()) {
tmp=q.top();
long long u=tmp.to;
q.pop();
if(v[u])continue;
v[u]=1;
for(int i=0;i<a[u].size();i++) {
long long to=a[u][i].to,w=a[u][i].w;
if(!v[to]&&dist[to]>dist[u]+w) {
dist[to]=dist[u]+w;
q.push({to,dist[to]});
}
}
}
}
signed main()
{
cin>>n>>m>>st>>qq;
for(int i=1;i<=m;i++) {
int x,y,w;
cin>>x>>y>>w;
a[x].push_back({y,w});
a[y].push_back({x,w});
}
dijkstra();
for(int i=1;i<=qq;i++) {
long long k;
cin>>k;
cout<<dist[k]<<"\n";
}
return 0;
}
问问 gesp也是捆绑测试吗