AT_abc429_f.[ABC429F] Shortest Path Query
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给你一个包含三行 N 列的网格。我们用从上到下的第 i 行、从左到右的第 j 列的单元格记作 (i,j)。若 Si,j 为 #,则 (i,j) 是墙格,否则为 . 时,(i,j) 是空格且可通过。
现在有 Q 个查询,请按顺序依次处理。
每个查询给出整数 r 和 c,你需要将 (r,c) 这一格的状态反转。如果该格原本是墙格,请改为空格,原本是空格则改为墙格。然后,输出以下问题的答案:
设你从 (1,1) 出发,每次只能走到相邻的上、下、左、右的空格,能否到达 (3,N)?如果能到达,请输出最少需要多少步。
输入格式
输入从标准输入读入,格式如下:
N
S1,1S1,2…S1,N
S2,1S2,2…S2,N
S3,1S3,2…S3,N
Q
query1
query2
⋮
queryQ
每个查询的格式为:
r c
输出格式
请输出 Q 行。
对于第 i 次查询(1≤i≤Q),若此时 (1,1) 无法到达 (3,N),请输出 -1,否则输出最少所需的步数。
输入输出样例
输入#1
5 .#... .#.#. ...#. 3 1 2 1 2 2 3
输出#1
6 10 -1
输入#2
7 .#..... .#..#.. ...#... 6 2 5 3 4 3 5 2 5 1 4 1 4
输出#2
10 8 10 12 -1 12
说明/提示
样例解释 1
第一次查询,将 (1,2) 的状态反转。此时网格变为:
.....
.#.#.
...#.
此时,可以依次经过 (1,1)、(1,2)、(1,3)、(1,4)、(1,5)、(2,5)、(3,5),共需 6 步到达 (3,5)。
第二次查询,再次将 (1,2) 状态反转。此时网格变为:
.#...
.#.#.
...#.
此时,可以依次经过 (1,1)、(2,1)、(3,1)、(3,2)、(3,3)、(2,3)、(1,3)、(1,4)、(1,5)、(2,5)、(3,5),共需 10 步到达 (3,5)。
第三次查询,将 (2,3) 状态反转。此时网格变为:
.#...
.###.
...#.
此时,无论如何移动,都无法从 (1,1) 到达 (3,5)。
数据范围
- 2≤N≤2×105
- Si,j 只可能是
#或.。 - S1,1=S3,N=.
- 1≤Q≤2×105
- 1≤r≤3
- 1≤c≤N
- (r,c)=(1,1), (3,N)
- N,Q,r,c 均为整数。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?