zoukankan      html  css  js  c++  java
  • 洛谷1119灾后重建

    题目:https://www.luogu.org/problemnew/show/P1119

    Floyd裸题……何况每个点的完成时间和查询中的时间都是单调不降的。

    如果Q遍djkstra、访问过程中根据edge[i].to的 t 来判断能不能走的话……不管了。

    Floyd之前尽管t=0时有点没建好,还是要把边权赋成初值,而且用别的k的时候也还是要更新这些还没建好的点;只是输出的时候判断一下就行了。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define ll long long
    using namespace std;
    const int N=205,M=200*199/2+5;
    const ll INF=795741901218843403;
    int n,m,q,t[N],cur;
    ll f[N][N];
    int main()
    {
        memset(f,11,sizeof f);
        scanf("%d%d",&n,&m);int x,y,z;
        for(int i=0;i<n;i++)scanf("%d",&t[i]);
        for(int i=1;i<=m;i++)
        {
            scanf("%d%d%d",&x,&y,&z);
            f[x][y]=f[y][x]=z;//
        }
        scanf("%d",&q);cur=-1;
        while(q--)
        {
            scanf("%d%d%d",&x,&y,&z);
            while(1)
            {
                if(t[cur+1]>z||cur+1>n)break;cur++;
                for(int i=0;i<n;i++)
                    for(int j=0;j<n;j++)
                        f[i][j]=min(f[i][j],f[i][cur]+f[cur][j]);
            }
            if(t[x]>z||t[y]>z||f[x][y]==INF)printf("-1
    ");
            else printf("%lld
    ",f[x][y]);
        }
        return 0;
    }
  • 相关阅读:
    字符序列(characts)
    装载问题(load)
    哈密顿路
    犯罪团伙
    回溯算法
    维修机器人
    旅行计划
    皇后游戏
    运输
    亲身实测可用的java实现wordxlsxpdf文件下载功能
  • 原文地址:https://www.cnblogs.com/Narh/p/8922339.html
Copyright © 2011-2022 走看看