zoukankan      html  css  js  c++  java
  • P1462 通往奥格瑞玛的道路

    #include<bits/stdc++.h>
    using namespace std;
    int n,m,b,cnt,ans;
    int f[1000000],c[1000000],nxt[1000000],to[1000000],val[1000000];
    int dis[1000000],head[1000000];
    int xx=1000000000,yy=0;
    void add(int x,int y,int z)
    {
    cnt++;
    nxt[cnt]=head[x];
    head[x]=cnt;
    to[cnt]=y;
    val[cnt]=z;
    }
    bool spfa(int mid)
    {
    if(mid<f[1])return false;
    queue<int> q;
    memset(dis,0x3f,sizeof(dis));
    bool ff[10000];
    dis[1]=0;
    ff[1]=true;q.push(1);
    while(q.size())
    {
    int a=q.front();q.pop();ff[a]=false;
    for(int i=head[a];i!=0;i=nxt[i])
    {
    if(f[to[i]]<=mid&&dis[to[i]]>dis[a]+val[i])
    {
    dis[to[i]]=dis[a]+val[i];
    if(!ff[to[i]])
    {
    ff[to[i]]=true;
    q.push(to[i]);
    }
    }
    }
    }
    if(dis[n]<=b)return true;
    else return false;
    }
    int main()
    {
    scanf("%d%d%d",&n,&m,&b);
    for(int i=1;i<=n;i++)
    {
    scanf("%d",&f[i]);
    yy=max(yy,f[i]);
    xx=min(xx,f[i]);
    }
    int x,y,z;
    for(int i=1;i<=m;i++)
    {
    scanf("%d%d%d",&x,&y,&z);
    add(x,y,z);
    add(y,x,z);
    }
    while(xx<=yy)
    {
    int mid=(xx+yy)>>1;
    if(spfa(mid))
    {
    ans=mid;
    yy=mid-1;
    }
    else xx=mid+1;
    }
    if(ans)cout<<ans;
    else cout<<"AFK";
    return 0;
    }

  • 相关阅读:
    django media配置
    django model项目外操作
    django 快捷代码提示
    django静态文件路径配置
    selenium爬取网易云
    selenium
    pyquery
    beautifulsoup
    Kafka与.net core(三)kafka操作
    Oracle 日期类型timestamp(时间戳)和date类型使用
  • 原文地址:https://www.cnblogs.com/647Z/p/7356187.html
Copyright © 2011-2022 走看看