WA on#2 求调谢谢
查看原帖
WA on#2 求调谢谢
525020
佐手牵鼬手楼主2022/8/19 17:29
#include<bits/stdc++.h>
using namespace std;
struct node{
	int to,w;
};

struct point {
    int d;long long dis;
    bool operator<(const point b)const {
        return dis>b.dis;
    }
};

int n,m,b,r,s,l,p,q,dis[50005];
vector <node> g[50005];

void pri_dij(int ss)
{
	priority_queue <point> q;
	memset(dis,0x3f,sizeof(dis));
	q.push((point){ss,0});
	bool vis[50005];
	dis[ss]=0;
	while(!q.empty())
	{
		point o=q.top();q.pop();
		int u=o.d;
		for(int i=0;i<g[u].size();i++)
		{
			int v=g[u][i].to,ww=g[u][i].w;
			if(!vis[v]&&dis[v]>dis[u]+ww)
			{
				dis[v]=dis[u]+ww;
				q.push((point){v,dis[v]});
			}
		}
	}
}
int main()
{
	cin>>n>>m>>b;
	for(int i=1;i<=m;i++)
	{
		cin>>r>>s>>l;
		g[r].push_back((node){s,l});
		g[s].push_back((node){r,l});
	}
	pri_dij(1);
	for(int i=1;i<=b;i++)
	{
		cin>>p>>q;
		cout<<dis[p]+dis[q]<<endl; 
	}
	return 0;
}
2022/8/19 17:29
加载中...