吸氧9R1T,不吸氧7A3T
代码如下:
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,m,b,dis[N],ans;
struct edge{
int v,w;
};
vector<edge>e[N];
struct nd{
int u,step;
friend bool operator <(nd x,nd y){
return x.step<y.step;
}
};
int dij(int st){
memset(dis,0x3f,sizeof dis);
priority_queue<nd>que;
que.push({st,0});
dis[st]=0;
while(!que.empty()){
nd n1=que.top();
que.pop();
if(dis[n1.u]<n1.step) continue;
for(auto i:e[n1.u]){
int v=i.v,w=i.w;
if(dis[v]>dis[n1.u]+w){
dis[v]=dis[n1.u]+i.w;
que.push({v,dis[v]});
}
}
}
}
int main(){
cin>>n>>m>>b;
for(int i=1;i<=m;i++){
int u,v,w;cin>>u>>v>>w;
e[u].push_back({v,w});
e[v].push_back({u,w});
}
dij(1);
while(b--){
int st,ed;cin>>st>>ed;
ans=dis[st]+dis[ed];
cout<<ans<<endl;
}
return 0;
}
求调