zoukankan      html  css  js  c++  java
  • luogu p1119 灾后重建

    luogu p1119 灾后重建
    少用memset(),不然吃亏在后边。
    在floyd在如果有些点不能走,等价于它们不能作中转点,这样就满足了时效性,也就满足了在变化的图中求任意两点的最短路

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<queue>
     4 #include<algorithm>
     5 #include<cmath>
     6 #include<ctime>
     7 #include<set>
     8 #include<map>
     9 #include<stack>
    10 #include<cstring>
    11 #define inf 2147483647
    12 #define ls rt<<1
    13 #define rs rt<<1|1
    14 #define lson ls,nl,mid,l,r
    15 #define rson rs,mid+1,nr,l,r
    16 #define N 100010
    17 #define For(i,a,b) for(long long i=a;i<=b;i++)
    18 #define p(a) putchar(a)
    19 #define g() getchar()
    20 
    21 using namespace std;
    22 
    23 long long f[310][310];
    24 long long n,m,x,y,c;
    25 long long t[500100];
    26 long long k,q;
    27 
    28 void in(long long &x){
    29     long long y=1;
    30     char c=g();x=0;
    31     while(c<'0'||c>'9'){
    32         if(c=='-')y=-1;
    33         c=g();
    34     }
    35     while(c<='9'&&c>='0'){
    36         x=(x<<1)+(x<<3)+c-'0';c=g();
    37     }
    38     x*=y;
    39 }
    40 void o(long long x){
    41     if(x<0){
    42         p('-');
    43         x=-x;
    44     }
    45     if(x>9)o(x/10);
    46     p(x%10+'0');
    47 }
    48 int main(){
    49     in(n);in(m);
    50      For(i,0,n)
    51          For(j,0,n)
    52              f[i][j]=inf;
    53          
    54      For(i,0,n)
    55          t[i]=inf;
    56     For(i,0,n-1)
    57         in(t[i]);
    58     For(i,1,m){
    59         in(x);in(y);in(f[x][y]);
    60         f[y][x]=f[x][y];
    61     }
    62     For(i,0,n-1)
    63         f[i][i]=0;
    64 
    65     in(q);
    66 
    67     For(ii,1,q){
    68         in(x);in(y);in(c);
    69         while(t[k]<=c){
    70             For(i,0,n-1)
    71                 For(j,0,n-1)
    72                     f[i][j]=min(f[i][j],f[i][k]+f[k][j]);
    73             k++;
    74         }
    75         if(f[x][y]==inf||t[x]>c||t[y]>c)
    76             o(-1);
    77         else
    78             o(f[x][y]);
    79         p('
    ');
    80     }
    81     return 0;
    82 }
    View Code
  • 相关阅读:
    DOM节点类型
    javascript中的变量、作用域
    this 不同情况指代的对象
    BOM对象节点
    浏览器兼容性
    总结
    javascript事件流讲解和实例应用
    7.20
    7.16总结
    飞机大战
  • 原文地址:https://www.cnblogs.com/war1111/p/10322762.html
Copyright © 2011-2022 走看看