# 題目

zerojudge e810. 2. 潛水 (Diving)

# 解題思路

目前沒東西...

# 程式碼

#include<bits/stdc++.h>
using namespace std;
#define N 505
vector<pair<int,int>> adj[N];
int n,m,A,B,done[N],apcacity;// 容量
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin>>n>>m;
    for(int i=0,u,v,w;i<m;i++){
        cin>>u>>v>>w;
        adj[u].push_back({v,w});
        adj[v].push_back({u,w});
    }
    cin>>A>>B;
    priority_queue<pair<int,int>> pq;
    pq.push({0,A});
    while(!pq.empty()){
        auto e=pq.top();pq.pop();
        int w=e.first,v=e.second;
        if(done[v]!=0) continue;
        done[v]=w;
        apcacity=min(apcacity,w);
        if(v==B) break;
        for(auto k:adj[v]){
            if(done[k.first]!=0) continue;// 不一定要
            pq.push({-k.second,k.first});
        }
    }
    if(done[B]==0) cout<<"-1";
    else cout<<-apcacity;
}
更新於 閱讀次數 次