刚学oi,不知哪错了就20分

P1462 通往奥格瑞玛的道路

风笛 @ 2018-10-10 21:40:29

#include <cstdio>
#include <queue>
#include <algorithm>
#define res register int
typedef long long ll;
const int mx = 12550;
ll n,m,tot,life,l,r,head[mx],d[mx],p[mx];
bool vis[mx];
std::queue<int> q;
struct edge{
    int to,next,w;
}e[mx<<2];

inline ll max(ll a,ll b){
    return a > b ? a : b; 
} 

inline ll rd(){
    ll x=0,f=1;char c=getchar();
    while(c>'9'||c<'0') {if(c=='-') f=-1;c=getchar();}
    while(c<='9'&&c>='0') { x=(x<<3)+(x<<1)+c-'0';c=getchar();}
    return x*f;
}

inline void write(ll x){
    if(x<0) { putchar('-');x=-x;}
    if(x>9) write(x/10);
    putchar(x%10+'0');
}

inline void add(int x,int y,int z){
    e[++tot].to=y;
    e[tot].w=z;
    e[tot].next=head[x];
    head[x]=tot;
}

inline void init(){
    n=rd(),m=rd(),life=rd();
    for(res i=1;i<=n;i++){
        p[i]=rd();
        r=max(p[i],r);
    }   l=max(p[1],p[n]);
    for(res i=1,x,y,z;i<=m;i++){
        x=rd(),y=rd(),z=rd();
        if(x==y) continue;
        add(x,y,z);
        add(y,x,z);
    }
}

inline bool spfa(int x){
    if(p[1]>x||p[n]>x) return false;
    for(res i=1;i<=n;i++) d[i] = 2147483647;
    d[1]=0;q.push(1);
    while(!q.empty()){
        int u=q.front();vis[u]=0;q.pop();
        for(res i=head[u];i;i=e[i].next){
            int to=e[i].to;
            if(d[to]>d[u]+e[i].w&&p[to]<=x){
                d[to]=d[u]+e[i].w;
                if(!vis[to]){
                    vis[to]=1;
                    q.push(to);
                }
            }
        }
    }
    if(d[n]>life) return false;
    return true;
}

inline void deal(){
    while(l<r){
        int mid = (l+r)>>1;
        if(spfa(mid)) r=mid;
        l=mid+1;
    }
} 

int main(){
//  freopen("std.in","r",stdin);
    init();
    deal();
    if(spfa(l)) write(l);
    else printf("AFK");
    return 0;
}

by HikariForever @ 2018-10-10 21:43:21

您要是刚学OI那我就是刚学算法之四则运算了


by Rbu_nas @ 2018-10-10 21:47:24

蕾姆赛高


by 硫酸钒酰 @ 2018-10-10 21:48:49

@水袖莲蝶

那我大概刚上小学


by whiteqwq @ 2018-10-10 21:52:54

刚学OI都是怪物系列。


by 一叶知秋。 @ 2018-10-10 21:54:04

那我只是刚学OI之LCA


by Ikari_Shinji @ 2018-10-10 22:00:39

那我只是幼儿园


by Sammuel @ 2018-10-10 22:01:21

@水袖莲蝶 您老用这么多数组干嘛 找的好烦哦~~~


by 风笛 @ 2018-10-10 22:39:11

@Sammuel 我就开了五个数组,您说的是不是子函数啊qwq


by MZ_CXQ @ 2018-10-12 08:22:50

刚学oi的红名大佬


by Sammuel @ 2018-10-12 21:55:17

@水袖莲蝶 打错了QWQ


| 下一页