传统题 4000ms 1024MiB

反弹小球

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

Description

在一个 n×mn \times m 的二维整数格点矩形区域内(格点坐标范围为 1≤x≤n,1≤y≤m1 \le x \le n, 1 \le y \le m),依次放入 kk 个小球。

每个小球 ii 的初始状态由初始位置 (xi,yi)(x_i, y_i) 和初始速度向量 (vxi,vyi)(v_{x_i}, v_{y_i}) 定义,其中 vxi,vyi∈{−1,1}v_{x_i}, v_{y_i} \in \{-1, 1\}。小球在离散的时间步中运动。在每一个时间步中,小球尝试根据当前速度移动到下一个位置,具体的移动逻辑如下:

  1. 碰撞判定:对于每一个维度,独立判断在该维度上是否即将运动到台球桌外。
    • 如果 1≤x+vx≤n1 \le x + v_x \le n,则水平速度 vxv_x 保持不变。
    • 如果 x+vx<1x + v_x < 1 或 x+vx>nx + v_x > n,则该维度的方向发生改变,即 vx←−vxv_x \leftarrow -v_x。
    • 垂直维度 yy 同理:如果 y+vy<1y + v_y < 1 或 y+vy>my + v_y > m,则 vy←−vyv_y \leftarrow -v_y。
  2. 位置更新:在确定了最终的速度方向后,小球移动到新位置 (x+vx,y+vy)(x + v_x, y + v_y)。

可以前往样例解释以进一步理解具体的运动逻辑。

不同小球之间相互独立,即使处于同一位置也不会发生碰撞。小球会无限运动下去。对于每个 i∈{1,2,…,k}i \in \{1, 2, \dots, k\},请你求出:在第 ii 个小球放下后,在无限时间里,至少被一个小球经过的格点数量总和

Input

第一行包含一个整数 TT(1≤T≤1041 \le T \le 10^4),表示测试数据的组数。

对于每组测试数据:

  • 第一行包含三个整数 n,m,kn, m, k(2≤n,m≤106,1≤k≤1062 \le n, m \le 10^6, 1\le k\le 10^6),分别表示网格的宽度、高度和小球的数量。
  • 接下来 kk 行,第 ii 行包含四个整数 xi,yi,vxi,vyix_i, y_i, v_{x_i}, v_{y_i}($1 \le x_i \le n, 1 \le y_i \le m, v_{x_i}, v_{y_i} \in \{-1, 1\}$),表示第 ii 个小球的初始位置和速度方向。

数据保证所有测试数据的 ∑n,∑m,∑k\sum n, \sum m, \sum k 均不超过 10610^6。

Output

对于每组测试数据,输出一行 kk 个整数,第 ii 个整数表示加入前 ii 个小球后,被经过的格点总数。

Samples

1
3 3 3
2 1 1 1
1 1 1 1
3 1 1 -1
4 7 9

Notes

在 3×33 \times 3 的网格中:

  1. 第 1 个球从 (2,1)(2, 1) 出发,速度为 (1,1)(1, 1):
    • (2,1)→(3,2)(2, 1) \to (3, 2) (撞右墙,vxv_x 变为 −1-1) →(2,3)\to (2, 3) (撞上墙,vyv_y 变为 −1-1) →(1,2)\to (1, 2) (撞左墙,vxv_x 变为 11) →(2,1)\to (2, 1)。
    • 轨迹点集:{(2,1),(3,2),(2,3),(1,2)}\{(2,1), (3,2), (2,3), (1,2)\},共 4 个点。
  2. 第 2 个球从 (1,1)(1, 1) 出发,速度为 (1,1)(1, 1):
    • (1,1)→(2,2)→(3,3)(1, 1) \to (2, 2) \to (3, 3) (双向撞墙,vx,vyv_x, v_y 均取反) →(2,2)…\to (2, 2) \dots
    • 轨迹点集:{(1,1),(2,2),(3,3)}\{(1,1), (2,2), (3,3)\}。
    • 前两个球的并集为 $\{(2,1), (3,2), (2,3), (1,2), (1,1), (2,2), (3,3)\}$,共 7 个点。
  3. 第 3 个球从 (3,1)(3, 1) 出发,速度为 (1,−1)(1, -1):
    • (3,1)→(2,2)→(1,3)→(2,2)…(3, 1) \to (2, 2) \to (1, 3) \to (2, 2) \dots
    • 轨迹点集:{(3,1),(2,2),(1,3)}\{(3,1), (2,2), (1,3)\}。注意 (2,2)(2,2) 之前已被小球 2 经过。
    • 前三个球的并集包含网格内所有 9 个格点。

第二十四届电子科技大学 ACM-ICPC 程序设计竞赛 - 决赛

未参加
状态
已结束
规则
XCPC
题目
10
开始于
2026-4-5 12:00
结束于
2026-4-5 17:00
持续时间
5 小时
主持人
参赛人数
0