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;
    }
  • 相关阅读:
    【原创】ZYNQ学习笔记(一) HelloWorld实现
    设置毛玻璃效果
    什么是UIImageView
    短信监听器
    内容观察者
    插入联系人
    UIFont
    什么是UILabel
    读取联系人案例
    利用内容提供者插入短信
  • 原文地址:https://www.cnblogs.com/Narh/p/8922339.html
Copyright © 2011-2022 走看看