时窗巡回最短
P5471. 时窗巡回最短
场次:2026年9月18日-非AI方向 · 来源:CodeFun2000 P5471
题目描述
身为快递员,你每天都得离开仓站,把货送到若干客户处。各位客户各自给出可收货时段,货必须落在该时段内交到(早到可以停着等,晚到不行)。货都送完后,还得回到仓站。交通导致任意两处之间的行驶耗时已经给出(正反向未必相同)。请排出一条访问顺序,在所有可收货时段都满足的条件下,让离开仓站直到再次回到仓站所花的时长(把等候也算进去)尽量短。若怎样走都做不到,输出 。
一共给出 处站点,编号写成 到 ,其中 处就是仓站。
站点 各自对应可到达闭区间 ,意思是抵达该站的时刻必须落在 与 之间,两端都算合法。
仓站的可作业时段覆盖整天 (单位:分钟)。你在时刻 离开仓站;途中允许在任意站点停着等(这段等候要算进总时长)。每位客户处必须经过且只经过一次,末了再回到仓站。行驶耗时表 给出从站点 走到站点 要花多少分钟(,正反向可以不同)。
请给出尽量短的总时长(也就是再次抵达仓站的那个时刻);若无可行走法,输出 。
输入格式
首行给出一个整数 (),即站点一共有多少处(仓站也算在内)。
随后连续 行,每行两个整数 与 (),对应第 处站点的可到达闭区间。
再随后 行,每行 个整数,构成行驶耗时表 ;第 行第 列就是从 走到 的耗时()。
输出格式
输出一个整数:尽量短的总时长(分钟)。若全部客户处无法按规则走完,输出 。
示例
示例 1
输入:
4
0 1440
6 18
20 45
14 28
0 4 18 8
6 0 9 20
10 12 0 7
9 16 11 0输出:
36说明:
四处站点:仓站 的可作业时段 ,客户 为 ,客户 为 ,客户 为 。
最优走法 :
- 去 :耗时 ,抵达时刻 ,等到
- 去 :耗时 ,抵达时刻 ,等到
- 去 :耗时 ,抵达时刻 ,落在
- 回仓站:耗时 ,抵达时刻
另一条可行走法 会在时刻 才回到仓站,更长。故答案为 。
示例 2
输入:
4
0 1440
5 12
5 12
5 12
0 4 4 4
4 0 10 10
4 10 0 10
4 10 10 0输出:
-1说明:
三位客户的可收货时段都是 。从仓站到任一客户耗时 ,抵达后等到 ;客户之间互走耗时 ,再抵达已是时刻 ,超出闭区间上界。怎样排列都走不完,故输出 。