zoukankan      html  css  js  c++  java
  • P1396 营救+二分+BFS

    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <queue>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    int h[50001],ne[50001],w[50001],to[50001],en=0;
    int n,m,S,T;
    int dis[10001];
    inline void add(int a,int b,int c)
    {ne[en]=h[a];w[en]=c;to[en]=b;h[a]=en++;}
    inline bool SPFA(int mid)
    {
        memset(dis,0x3f,sizeof dis);
        queue<int>q;
        q.push(S);
        dis[S]=1;
        while (!q.empty())
        {
            int x=q.front();q.pop();
            for (int i=h[x];i>=0;i=ne[i])
            if (w[i]<=mid){
                if (dis[to[i]]==0x3f3f3f3f)
                {
                    dis[to[i]]=1;
                    q.push(to[i]);
                }
            }
        }
        if (dis[T]==0x3f3f3f3f) return false;
        else return true;
    }
    int main()
    {
        memset(h,-1,sizeof h);
        scanf("%d%d%d%d",&n,&m,&S,&T);
        for (int i=1;i<=m;++i)
        {
            int a,b,c;
            scanf("%d%d%d",&a,&b,&c);
            add(a,b,c);
            add(b,a,c);
        }
        int l=0,r=10000;
        while (l<r)
        {
            int mid=(l+r)/2;
            if (SPFA(mid)) r=mid;
            else l=mid+1;
        }
        printf("%d
    ",l);
    }
    

      

  • 相关阅读:
    JS高级拖拽
    JS高级Date类
    JS高级闭包
    JS笔记整理
    JS高级解决函数内的this指向
    JS高级事件委托
    JS高级 事件对象
    JS中级面向对象
    JS中级
    JS高级
  • 原文地址:https://www.cnblogs.com/ruanmowen/p/12727717.html
Copyright © 2011-2022 走看看