关于RE最后两个点
  • 板块P1396 营救
  • 楼主wlxs2006
  • 当前回复4
  • 已保存回复4
  • 发布时间2020/7/3 21:16
  • 上次更新2023/11/6 23:42:37
查看原帖
关于RE最后两个点
242405
wlxs2006楼主2020/7/3 21:16
#include<iostream>
#include<cmath>
#include<cstring>
#include<vector>
using namespace std;
int n,m,x,y,z,s,t,a[2502][2502],dis[2502],siz,pos,vst;
bool v[2502];
vector<int> q[2503];
void dijkstra(){
	memset(dis,0x3f,sizeof(dis));
	memset(v,false,sizeof(v));
	dis[pos]=2e9;dis[s]=0;vst=n;
	while(vst>0){
		pos=0;
		for(int j=1;j<=n;++j)
			if((!v[j])&&dis[pos]>dis[j]) pos=j;
		v[pos]=true;
		--vst;
		siz=q[pos].size();
		for(int j=0;j<siz;++j)
			dis[q[pos][j]]=min(dis[q[pos][j]],max(dis[pos],a[pos][q[pos][j]]));
	}
}
int main(){
	memset(a,0x3f,sizeof(a));
	cin>>n>>m>>s>>t;
	for(int i=1;i<=m;++i){
		cin>>x>>y>>z;
		a[x][y]=a[y][x]=min(a[x][y],z);
		q[x].push_back(y);
		q[y].push_back(x);
	}
	dijkstra();
	cout<<dis[t]<<endl;
return 0;
}

求各位大佬指点Q_Q|||

2020/7/3 21:16
加载中...