棋子

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

题目描述

【题目描述】

FJ的棋盘地被划分成R行C列,共R×C个格子。一开始时,如果某个格子有棋子,那么用‘x’表示,如果没有棋子则用‘.’表示。现在FJ有Q个操作,每个操作的格式是给出两个整数:a 和 b,表示询问到目前为止,距离第a行第b列格子最近的棋子在哪里?输出该棋子所在格子与第a行第b列格子的距离。当你输出该距离之后,FJ在第a行第b列的格子增加一个棋子。 现在给出两个格子的距离计算公式:记第a行第b列的格子是(a,b),第c行第d列的格子是(c,d),那么格子(a,b)与格子(c,d)的距离=(a-c) × (a-c) + (b-d)×(b-d)。

输入格式

【输入格式】d.in

第一行,R和C。 1 <= R, C <= 500。

接下来是R行C列棋盘,每个元素要么是x’,要么是‘.’,数据保证至少有一个棋子。

接下来一行,是一个整数Q,表示总共有Q个操作。 1<=Q<=100000。

接下来有Q行,每行表示一个操作,格式是两个整数:a和b。意义如题目所示。

输出格式

【输出格式】d.out

共Q行,每行输出一个距离。

数据规模

【数据规模】

对于30%的数据,Q <= 500。

输入样例 d.in

输出样例 d.out

样例解释

3 3

x..

...

...

3

1 3

1 1

3 2

4

0

5

棋盘是3行3列,一开始只有第1行第1列的格子有棋子。

FJ总共有3个操作,第一个操作:询问离第1行第3列最近的棋子所在格子与第1行第3列格子的距离是多少?由于到目前为止只有第1行第1列有棋子,那么答案肯定就是:(1-1)(1-1) + (1-3)(1-3)=4。所以你要输出4。然后FJ在第1行第3列的格子增加一个棋子。

第二个操作:询问离第1行第1列最近的棋子所在格子与第1行第1列格子的距离是多少?虽然到目前为止已经有了两个棋子,但显然, 第1行第1列的棋子更近些,那么答案肯定就是:(1-1)(1-1) + (1-1)(1-1)=0。所以你要输出0。然后FJ在第1行第1列的格子增加一个棋子。

第三个操作:询问离第3行第2列最近的棋子所在格子与第3行第2列格子的距离是多少?虽然到目前为止已经有了3个棋子,答案肯是:(1-3)(1-3) + (1-2)(1-2)=5。所以你要输出5。然后FJ在第3行第2列的格子增加一个棋子。

bb2026-0212

未认领
状态
已结束
题目
17
开始时间
2026-2-12 7:45
截止时间
2026-3-30 23:59
可延期
24 小时