Ybw0731 @ 2024-11-28 21:33:32
题目地址
错误代码
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<utility>
#include<cstdio>
#include<stdio.h>
#define ll long long
using namespace std;
const int N=1e5+5;
const int INF=0x3f3f3f3f;
priority_queue<pair<int,int> ,vector<pair<int,int> >,greater<pair<int,int> > >que;
vector<pair<int,int> >g[N];
int n,m,st,dis[N],cnt[N];
bool vis[N];
void dijkstra(int st){
for(int i=1;i<=n;i++){
dis[i]=0;
vis[i]=0;
}
que.push({0,st});
dis[st]=INF;
while(!que.empty()){
pair<int,int> e=que.top();
que.pop();
int u=e.second;
if(vis[u])continue;
vis[u]=1;
for(int i=0;i<g[u].size();i++){
int v=g[u][i].first,w=min(dis[u],g[u][i].second);
if(w>dis[v]){
dis[v]=w;
que.push({dis[v],v});
}
}
}
}
void solve(int s){
cin>>n>>m;
for(int i=1;i<=n;i++)g[i].clear();
for(int i=1;i<=m;i++){
int u,v,w;
cin>>u>>v>>w;
g[u].push_back({v,w});
g[v].push_back({u,w});
}
dijkstra(1);
printf("Scenario #%d:\n%d\n",s,dis[n]);
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int T=1;
cin>>T;
for(int i=1;i<=T;i++){
solve(i);
}
cout<<endl;
return 0;
}
求改