zoukankan      html  css  js  c++  java
  • 【Luogu】P1119灾后重建(Floyd)

      题目链接

      见题解: feilongz。

      这里只放代码。

      

    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<cctype>
    inline long long read(){
        long long num=0,f=1;
        char ch=getchar();
        while(!isdigit(ch)){
            if(ch=='-')    f=-1;
            ch=getchar();
        }
        while(isdigit(ch)){
            num=num*10+ch-'0';
            ch=getchar();
        }
        return num*f;
    }
    
    int Map[200][200];
    bool vis[200];
    int tme[200];
    
    
    int main(){
        int n=read(),m=read();
        memset(Map,127/3,sizeof(Map));
        for(int i=0;i<n;++i){
            tme[i]=read();
            Map[i][i]=0;
        }
        for(int i=1;i<=m;++i){
            int from=read(),to=read(),dis=read();
            if(Map[from][to]>dis)    Map[from][to]=Map[to][from]=dis;
        }
        int Q=read();
        for(int i=1;i<=Q;++i){
            int from=read(),to=read(),t=read();
            for(int j=0;j<n;++j){
                if(vis[j]||tme[j]>tme[to])    continue;
                vis[j]=1;
                for(int k=0;k<n;++k)
                    for(int l=0;l<n;++l)
                        if(Map[k][l]>Map[k][j]+Map[j][l])    Map[k][l]=Map[k][j]+Map[j][l];
            }
            if(tme[from]>t||tme[to]>t||Map[from][to]==Map[n][n]){
                printf("-1
    ");
                continue;
            }
            printf("%d
    ",Map[from][to]);
        }
        return 0;
    }
  • 相关阅读:
    mysql数据索引
    JQuery学习
    (原创)JAVA多线程一传统多线程
    JAVA常用的XML解析方法
    java集合比较
    Hibernate总结3
    Hibernate总结4之HQL
    HDU5716, HDU5745【dp+bitset】
    Can of Worms 【迭代/线段树】
    CSU 1802 小X的战斗力【拓扑dp】
  • 原文地址:https://www.cnblogs.com/cellular-automaton/p/7613918.html
Copyright © 2011-2022 走看看