求调
  • 板块P1396 营救
  • 楼主qinyi2601
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/9/24 21:25
  • 上次更新2024/9/24 21:58:55
查看原帖
求调
1218252
qinyi2601楼主2024/9/24 21:25

为什么全RE了????????

#include<bits/stdc++.h>
using namespace std;
int n,m,s,t,vis[50005];
bool dis[10005][10005];
queue<int>q;
struct node{
	vector<int> v;
	vector<int> w;
	int head;
}a[50005];
int add(int u,int v,int w){
	a[u].head++;
	a[u].v.push_back(v);
	a[u].w.push_back(w);
}
void BFS(){
	q.push(s);
	vis[s]=0;
	while(!q.empty()){
		int x=q.front();
		q.pop();
		for(int i=0;i<a[x].head;i++){
			if(vis[a[x].v[i]]==-1||vis[a[x].v[i]]>max(vis[x],a[x].w[i])){
				q.push(a[x].v[i]);
				vis[a[x].v[i]]=max(vis[x],a[x].w[i]);
			}
		}
	}
}
int main(){
	cin>>n>>m>>s>>t;
	memset(vis,-1,sizeof(vis));
	while(m--){
		int u,v,w;
		cin>>u>>v>>w;
		if(dis[u][v]==1){
			for(int i=0;i<a[u].head;i++){
				if(a[u].v[i]==v){
					a[u].w[i]=min(w,a[u].w[i]);
					break;
				}
			}
			for(int i=0;i<a[v].head;i++){
				if(a[v].v[i]==u){
					a[v].w[i]=min(w,a[v].w[i]);
					break;
				}
			}
		}else{
			dis[u][v]=1;
			dis[v][u]=1;
			add(u,v,w);
			add(v,u,w);	
		}
	
	}
	BFS();
	cout<<vis[t];
	return 0;
}
2024/9/24 21:25
加载中...