CF1932G.Moving Platforms
提高+/省选-
通过率:0%
时间限制:3.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
There is a game where you need to move through a labyrinth. The labyrinth consists of n platforms, connected by m passages.
Each platform is at some level li, an integer number from 0 to H−1. In a single step, if you are currently on platform i, you can stay on it, or move to another platform j. To move to platform j they have to be connected by the passage, and their levels have to be the same, namely li=lj.
After each step, the levels of all platforms change. The new level of platform i is calculated as li′=(li+si)modH, for all i.
You start on platform 1. Find the minimum number of steps you need to get to platform n.
有一个游戏,你需要穿越一座迷宫。该迷宫由 n 个平台组成,平台之间通过 m 条通道相连。
每个平台位于某个层级 li,其值为从 0 到 H−1 的整数。在单步操作中,若你当前位于平台 i,你可以选择停留在该平台,或移动到另一平台 j。要移动到平台 j,必须满足:平台 i 与平台 j 之间存在一条通道,并且它们的层级相同,即 li=lj。
每步操作结束后,所有平台的层级都会发生变化。平台 i 的新层级按如下公式计算:li′=(li+si)modH,对所有 i 均成立。
你从平台 1 出发。求到达平台 n 所需的最少步数。
输入格式
The first line of input contains a single integer t (1≤t≤104) — the number of test cases. Then the descriptions of the test cases follow.
The first line of each test case contains three integers n, m, and H (2≤n≤105, 1≤m≤105, 1≤H≤109).
The second line contains n integers li, the initial level of each platform (0≤li≤H−1).
The third line contains n integers si, the change of level for each platform (0≤si≤H−1).
Next m lines contain a description of the passages. Each passage is described as a pair of integers — the platforms, connected by the passage. There is at most one passage connecting each pair of platforms, and there is no passage connecting a platform to itself.
The sum of n for all tests does not exceed 105, the sum of m for all tests does not exceed 105.
输入的第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。随后是各测试用例的描述。
每个测试用例的第一行包含三个整数 n、m 和 H(2≤n≤105,1≤m≤105,1≤H≤109)。
第二行包含 n 个整数 li,表示每个平台的初始高度(0≤li≤H−1)。
第三行包含 n 个整数 si,表示每个平台的高度变化量(0≤si≤H−1)。
接下来的 m 行描述了通道。每条通道由一对整数表示——即该通道所连接的两个平台。任意两个平台之间至多存在一条通道,且不存在连接平台到其自身的通道。
所有测试用例的 n 之和不超过 105,所有测试用例的 m 之和不超过 105。
输出格式
For each test case, print a single integer, the minimum number of steps needed to get from platform 1 to platform n.
If it is impossible to get to platform n, print −1.
对于每个测试用例,输出一个整数,表示从平台 1 到达平台 n 所需的最少步数。
如果无法到达平台 n,则输出 −1。
输入输出样例
输入#1
3 3 3 10 1 9 4 2 3 0 1 2 3 2 1 3 2 1 10 1 2 4 6 1 2 8 7 25 22 14 5 3 10 14 11 1 9 5 4 10 7 16 18 18 2 8 6 3 3 5 7 5 2 6 1 4 4 7
输出#1
6 -1 52
说明/提示
This is how levels of the platforms change, and what actions we need to perform in the first example.
Platform 1
Platform 2
Platform 3
Action
Step 1
1
9
4
Stay on the platform 1
Step 2
3
2
4
Stay on the platform 1
Step 3
5
5
4
Move to the platform 2
Step 4
7
8
4
Stay on the platform 2
Step 5
9
1
4
Stay on the platform 2
Step 6
1
4
4
Move to the platform 3
平台层级的变化方式,以及第一个示例中我们需要执行的操作如下所示:
平台 1
平台 2
平台 3
操作
第 1 步
1
9
4
停留在平台 1
第 2 步
3
2
4
停留在平台 1
第 3 步
5
5
4
移动到平台 2
第 4 步
7
8
4
停留在平台 2
第 5 步
9
1
4
停留在平台 2
第 6 步
1
4
4
移动到平台 3
输入解题思路,AI测评打分。不知道怎么写?