AT_joisc2021_d.逃走経路 (Escape Route)
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
IOI 国的一天被划分为 S 个单位时间(单位:皮秒)。每日起点开始经过 x 皮秒 (0≤x<S) 的时刻称为时刻 x。国家包含 N 座城市(编号 0 至 N−1)和 M 条双向道路(编号 0 至 M−1),任意两城市均可通过若干道路互通。
每条道路 i (0≤i≤M−1) 具有以下属性:
- 连接城市 Ai 与 Bi。
- 通行耗时 Li 皮秒。
- 每日从时刻 Ci 至当日结束进行全路段检查。
JOI 团成员使用道路 i 时,必须满足:
- 在时刻 x 从 Ai 或 Bi 出发,且 0≤x≤Ci−Li。
- 在时刻 x+Li 到达另一城市。
(检查期间允许停留在 Ai 或 Bi)
现有 Q 名成员(编号 0 至 Q−1):
- 成员 j 于某日时刻 Tj 从 Uj 出发前往 Vj。
- 移动中可在城市等待(可能耗时多日)。
请计算每位成员从起点到终点的最小耗时。
实现细节
需实现以下函数:
#include "escape_route.h"
std::vector<long long> calculate_necessary_time(
int N, int M, long long S, int Q,
std::vector<int> A, std::vector<int> B,
std::vector<long long> L, std::vector<long long> C,
std::vector<int> U, std::vector<int> V, std::vector<long long> T
);
参数说明:
N:城市数量。M:道路数量。S:每日总皮秒数。Q:成员数量。A,B,L,C:长度为 M 的数组,描述道路 i(连接 Ai 与 Bi,耗时 Li,检查开始时刻 Ci)。U,V,T:长度为 Q 的数组,描述成员 j(从 Uj 于时刻 Tj 出发前往 Vj)。
返回值:
- 长度为 Q 的
long long数组,其中answer[j]为成员 j 的最小耗时。
输入格式
本题是交互题,详见实现细节。
输出格式
详见实现细节。
输入输出样例
输入#1
4 5 20 6 0 1 3 19 0 2 2 8 1 2 4 15 1 3 5 14 2 3 1 18 0 3 5 0 3 7 0 3 9 2 0 6 3 1 10 1 2 15
输出#1
3 8 14 2 5 7
说明/提示
样例解释
- 成员 0(耗时 3 皮秒):
- 时刻 5:城市 0 → 道路 1(耗时 2)→ 城市 2(时刻 7)。
- 时刻 7:城市 2 → 道路 4(耗时 1)→ 城市 3(时刻 8)。
- 成员 2(耗时 14 皮秒):
- 在城市 0 等待至次日时刻 0。
- 时刻 0:城市 0 → 道路 1(耗时 2)→ 城市 2(时刻 2)。
- 时刻 2:城市 2 → 道路 4(耗时 1)→ 城市 3(时刻 3)。
数据范围
- 2≤N≤90
- N(N−1)≤M≤2N(N−1)
- 2≤S≤1015
- 1≤Q≤3×106
- 0≤Ai,Bi,Uj,Vj≤N−1
- Ai=Bi,Uj=Vj
- 1≤Li<S,Li≤Ci<S
- 0≤Tj<S
- 图连通
子任务
- (5 分) N≤40,Q≤1000
- (20 分) N≤40,所有 Uj=0
- (10 分) N≤40
- (35 分) N≤60
- (30 分) 无特殊限制
本翻译由 Deepseek R1 大模型生成。
输入解题思路,AI测评打分。不知道怎么写?