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

    灾后重建

    洛谷链接

    还是最小生成树的题,不过加上了时间限制,一开始没看到题目上面说的t保证升序输入,然后想啊想啊想啊,感觉不能直接用floyed啊,之后。。。。。。。。

    就是裸的floyed,四重循环,再加一个时间的判断。

    难度竟然是提高+/省选。

    但我对于这个题目的评价,和上一个一样,只有一句话:dog题目。

    还是要代码的:

     1 #include<cstdio>
     2 #include<algorithm>
     3 #define N 210
     4 #define M 50010
     5 #define MAXX 42000000
     6 using namespace std;
     7 int n,m,p,t[N],dis[N][N],a,b,c,px[M],py[M],pt[M],k;
     8 int main(){
     9     scanf("%d%d",&n,&m);
    10     for(int i=0;i<n;++i)
    11         scanf("%d",&t[i]);
    12     t[n]=MAXX;
    13     for(int i=0;i<n;++i)
    14         for(int j=0;j<n;++j)
    15             dis[i][j]=MAXX*(i!=j);
    16     for(int i=0;i<m;++i){
    17         scanf("%d%d%d",&a,&b,&c);
    18         dis[a][b]=c;
    19         dis[b][a]=c;
    20     }
    21     scanf("%d",&p);
    22     for(int i=0;i<p;++i)
    23         scanf("%d%d%d",&px[i],&py[i],&pt[i]);
    24     for(int l=0;l<p;++l){
    25         while(t[k]<=pt[l]){
    26             for(int i=0;i<n;++i)
    27                 for(int j=0;j<n;++j)
    28                     dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
    29             k++;
    30         }
    31         if(t[px[l]]>pt[l]||t[py[l]]>pt[l]||dis[px[l]][py[l]]==MAXX)
    32             printf("-1
    ");
    33         else
    34             printf("%d
    ",dis[px[l]][py[l]]);
    35     }
    36     return 0;
    37 }
    View Code
  • 相关阅读:
    异常类
    设计模式
    java的参数传递
    meta 标签中 http-equiv 的作用
    导入CSV格式文件方法
    第四次博客作业-结对项目
    第九次作业-接口及接口回调
    第八次作业-继承
    软件工程第三次作业——关于软件质量保障初探
    Java第七次作业
  • 原文地址:https://www.cnblogs.com/jsawz/p/6829606.html
Copyright © 2011-2022 走看看