营救
最短路加暴力.....注意是最大值最小......代码:
#include<bits/stdc++.h> using namespace std; struct str { int qi_dian,zhong_dian,zhi;//懒~~ }a[110000]; int ans[1100000]; int n,m,h1,h2; int main() { cin>>n>>m; cin>>h1>>h2; for(int i=1;i<=m;i++) { cin>>a[i].qi_dian>>a[i].zhong_dian>>a[i].zhi;//读入 } for(int i=1;i<=n;i++) { ans[i]=99999999; } ans[h1]=0; for(int i=1;i<n;i++) { int flag=0; for(int j=1;j<=m;j++) { if(ans[a[j].qi_dian]>max(a[j].zhi,ans[a[j].zhong_dian]))//比较 { ans[a[j].qi_dian]=max(ans[a[j].zhong_dian],a[j].zhi); flag=1; } if(ans[a[j].zhong_dian]>max(a[j].zhi,ans[a[j].qi_dian])) { ans[a[j].zhong_dian]=max(a[j].zhi,ans[a[j].qi_dian]); flag=1; } } if(flag==0) break; } cout<<ans[h2]; }