D. 魔法棋盘

    传统题 文件IO:magic 2000ms 256MiB

魔法棋盘

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

伞伞的魔法棋盘上,住着一群活泼的小马。棋盘是 n×nn×n 的方格,每个格子里要么有一匹马(标着数字 1~9),要么是空的(.)。

每匹马都有 跳跃等级:数字越大,跳得越远!

  • 等级为 LL 的小马,在 一轮行动 中 至少跳 11 次,最多跳 LL 次(一次就是走一个“日”字步)。
  • 马的走法和国际象棋里的马一样,走“日”字:从 (i,j)(i,j) 可以跳到 (i±1,j±2)(i±1,j±2) 或 (i±2,j±1)(i±2,j±1),但不能跳出棋盘。

多个马可以同时站在同一个格子上,互不干扰。

现在伞伞有 qq 个问题:他想知道,如果让所有小马同时开始跳,最少需要多少轮行动,才能让所有马都聚到指定的格子 (xi,yi)(x_i,y_i) 上?小马在到达目标格后仍可在后续轮次继续跳跃,只要最后一轮结束时在目标格即可。

如果无论如何都无法聚到一起(比如某匹马永远跳不到那里),就输出 -1。

注意:每轮中,每匹马都必须跳至少一次,不能偷懒不动哦!

输入格式

从文件 magic.in 读入数据。 第一行两个整数 n,qn,q。

接下来 nn 行,每行一个长度为 nn 的字符串,只包含数字 1~9 或 .。数字表示该格有一匹对应等级的马,. 表示空格。

接下来 qq 行,每行两个整数 xi,yix_i,y_i​,表示询问的目标格子。

输出格式

输出到文件 magic.out。 对于每个询问,输出一个整数表示最少轮数;如果无法达成,输出 -1。

5 10
21.43
2214.
.1...
.....
.....
1 1
2 1
3 1
4 1
5 1
1 5
2 5
3 5
4 5
5 5
3
2
3
4
3
3
2
3
4
3

数据规模与约定

下发文件

下发文件分别对应子任务 1,2,31,2,3。

子任务编号 n,q≤n,q≤ 特殊性质 分值
11 5050 3030
22 300300 所有马均为 22 级马
33 4040

对于 100%100\% 的数据:保证 1≤n,q≤300,1≤xi,yi≤n1 \leq n,q \leq 300,1 \leq x_i,y_i \leq n,保证至少有一匹马。

时空限制:22 秒 / 256 MiB256\,\mathrm{MiB}。

三三信奥国庆模拟赛 CSP-J 第四场

未参加
状态
已结束
规则
OI
题目
4
开始于
2026-10-5 8:30
结束于
2026-10-8 8:30
持续时间
3.5 小时
主持人
参赛人数
8