营救

最短路加暴力.....注意是最大值最小......代码:

#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];
}

猜你喜欢

转载自www.cnblogs.com/dai-jia-ye/p/9441052.html