dijkstra wa #5,#6 求调
查看原帖
dijkstra wa #5,#6 求调
1243205
0720wangyuxiang楼主2024/9/6 19:20
#include<bits/stdc++.h>
using namespace std;
const int N=4e4+10;
int e[N],h[N],nx[N],w[N],cnt,n,m,s,t,d[N];
bool vis[N];
priority_queue<pair<int,int> > q;
void add(int x,int y,int z){
	e[++cnt]=y;
	nx[cnt]=h[x];
	w[cnt]=z;
	h[x]=cnt;
	return ;
}
int main() {
	cin>>n>>m>>s>>t;
	for(int i=1;i<=m;i++){
		int x,y,z;
		cin>>x>>y>>z;
		add(x,y,z);
		add(y,x,z);
	}
	memset(d,0x3f,sizeof d);
	d[s]=0;
	vis[s]=true;
	q.push(make_pair(-0,s));
	while(q.size()){
		int x=q.top().second;
		q.pop();
		for(int i=h[x];i;i=nx[i]){
			int y=e[i];
			int z=w[i];
			if(d[y]>max(d[x],z)){
				d[y]=max(d[x],z);
				if(vis[y])continue;
				vis[y]=true;
				q.push(make_pair(-d[y],y));
			}
		}
	}
	cout<<d[t];
}

打模板的蒟蒻

QAQ

2024/9/6 19:20
加载中...