博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P1119 灾后重建
阅读量:6305 次
发布时间:2019-06-22

本文共 1250 字,大约阅读时间需要 4 分钟。

利用Floyd最外层为中转点的性质。

#include 
#include
#include
#include
#include
using namespace std;const int MAXN = 200 + 10;const int MAXQ = 5e4 + 20;const int INF = 0x3f3f3f3f;inline int read(){ int x = 0; char ch = getchar(); while(!isdigit(ch)) ch = getchar(); while(isdigit(ch)) x = x * 10 + ch -'0', ch = getchar(); return x;}int N, M, Q;int time[MAXN];int dis[MAXN][MAXN];inline void floyd(int x){ for(int i = 0; i < N; i++) for(int j = 0; j < N; j++) if(dis[i][x] != INF && dis[x][j] != INF) dis[i][j] = min(dis[i][j], dis[i][x] + dis[x][j]);}int main(){ cin>>N>>M; memset(dis, 0x3f, sizeof(dis)); for(int i = 0; i < N; i++) time[i] = read(); for(int i = 0, u, v, c; i < M; i++){ u = read(), v = read(), c = read(); dis[u][v] = dis[v][u] = min(dis[u][v], c); } cin>>Q; int p = 0; while(Q--){ int x = read(), y = read(), w = read(); while(time[p] <= w && p < N) { floyd(p), ++p; } if(dis[x][y] == INF || time[x] > w || time[y] > w) puts("-1"); else cout<
<

 

转载于:https://www.cnblogs.com/wsmrxc/p/9313547.html

你可能感兴趣的文章
《大话设计模式》--外观模式
查看>>
基于ngx_lua的动态服务路由方案
查看>>
文件IO详解(四)---标准输入、标准输出和标准错误
查看>>
张小龙2018PRO版微信公开课演讲全文 透露2018微信全新计划
查看>>
JQuery判断CheckBox是否选中
查看>>
leetcode 653. Two Sum IV - Input is a BST
查看>>
新建 .NET Core 控制台项目 C# 数组深拷贝
查看>>
DotNetCore跨平台~Json动态序列化属性
查看>>
Spring Boot 特性 —— SpringApplication
查看>>
Delphi 操作Flash D7~XE10都有 导入Activex控件 shockwave
查看>>
BurpSuite中的安全测试插件推荐
查看>>
Spring Boot 集成MyBatis
查看>>
linux中chmod与chown两个命令详解
查看>>
查看Ubuntu是32位还是64位
查看>>
QT和MFC的差别
查看>>
Some Sites About .Net
查看>>
ADB Server Didn’t ACK ,failed to Start Daemon 解决方法
查看>>
linux下cacti一键自动安装脚本(适用于centos、redhat)-【原创】
查看>>
【译】处理 iOS 中复杂的 Table Views 并保持优雅
查看>>
JS浅拷贝与深拷贝的学习记录
查看>>