【2017】列队

hg333538 程序题 共 个子题

题目描述

Sylvia 所在的方阵有 $n$ 行 $m$ 列共 $n \times m$ 名学生,初始时教官按照从前到后、从左到右的顺序给学生从 $1$ 到 $n \times m$ 编号,即第 $i$ 行第 $j$ 列的学生编号为 $(i-1) \times m + j$。

一天内共发生 $q$ 次离队事件,每次事件用数对 $(x,y)$ 描述,表示当时第 $x$ 行第 $y$ 列的学生离队:

  1. 学生离队后先执行向左看齐指令:第一列保持不动,所有学生向左填补空位,最终空位移动到第 $x$ 行第 $m$ 列。
  2. 再执行向前看齐指令:第一行保持不动,所有学生向前填补空位,最终空位移动到第 $n$ 行第 $m$ 列。
  3. 离队的学生最终填补到第 $n$ 行第 $m$ 列的空位,每个学生的编号永久不变。

请你计算每次离队事件中,离队学生的编号。

输入描述

输入共 $q+1$ 行:

  • 第 $1$ 行包含 $3$ 个用空格分隔的正整数 $n, m, q$,分别表示方阵的行数、列数、离队事件总数。
  • 接下来 $q$ 行,每行两个整数 $x, y$,表示本次离队的学生当时位于第 $x$ 行第 $y$ 列,数据保证 $1 \leq x \leq n, 1 \leq y \leq m$。

输出描述

按照事件输入的顺序,每行输出一个整数,表示对应离队事件中学生的编号。

输入样例1

2 2 3
1 1
2 2
1 2

输出样例1

1
1
4

样例1解释

初始方阵为: $$\begin{bmatrix}1 & 2 \\3 & 4\end{bmatrix}$$

  1. 第一次事件 $(1,1)$:编号为 $1$ 的学生离队,向左看齐后第一行变为 $[2]$,空位移动到 $(1,2)$;向前看齐后第 $2$ 列变为 $[2,4]$,空位移动到 $(2,2)$;最后 $1$ 填补到 $(2,2)$,方阵变为 $\begin{bmatrix}2 & 4 \\3 & 1\end{bmatrix}$,输出 $1$。
  2. 第二次事件 $(2,2)$:编号为 $1$ 的学生离队,向左看齐后第二行变为 $[3]$,空位移动到 $(2,2)$;向前看齐后第 $2$ 列不变,空位仍在 $(2,2)$;最后 $1$ 填补到 $(2,2)$,方阵不变,输出 $1$。
  3. 第三次事件 $(1,2)$:编号为 $4$ 的学生离队,向左看齐后第一行变为 $[2]$,空位移动到 $(1,2)$;向前看齐后第 $2$ 列变为 $[1,3]$,空位移动到 $(2,2)$;最后 $4$ 填补到 $(2,2)$,方阵变为 $\begin{bmatrix}2 & 1 \\3 & 4\end{bmatrix}$,输出 $4$。

数据规模与约定

测试点编号 $n$ $m$ $q$ 其他约定
1~6 $\leq 1000$ $\leq 1000$ $\leq 500$ 无
7~10 $\leq 5 \times 10^4$ $\leq 5 \times 10^4$ $\leq 500$ 无
11~12 $=1$ $\leq 10^5$ $\leq 10^5$ 所有事件 $x=1$
13~14 $=1$ $\leq 3 \times 10^5$ $\leq 3 \times 10^5$ 所有事件 $x=1$
15~16 $\leq 3 \times 10^5$ $\leq 3 \times 10^5$ $\leq 3 \times 10^5$ 所有事件 $x=1$
17~18 $\leq 10^5$ $\leq 10^5$ $\leq 10^5$ 无
19~20 $\leq 3 \times 10^5$ $\leq 3 \times 10^5$ $\leq 3 \times 10^5$ 无

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧