PKU 2387 Til the Cows Come Home
http://poj.org/problem?id=2387
無向グラフ上の最短距離を求める問題。
ダイクストラ書く練習?
TLEも気にしなくていいようなので、のんびりと書いてサクっと通せばいいんじゃないでしょうか?
const int MAX=1000; vector<PI> G[MAX]; bool vis[MAX]; int n; main(){ int t; cin>>t>>n; while(t--){ int a,b,c; cin>>a>>b>>c; --a,--b; G[a].pb(mp(b,c)); G[b].pb(mp(a,c)); } priority_queue<PI> Q; Q.push(mp(0,0)); while(!Q.empty()){ int v=Q.top().S,cc=-Q.top().F;Q.pop(); if(vis[v])continue; vis[v]=true; if(v==n-1){ cout<<cc<<endl; return 0; } rep(i,G[v].size()){ if(vis[G[v][i].F])continue; Q.push(mp(-cc-G[v][i].S,G[v][i].F)); } } }