#P13487. [GCJ 2008 Finals] Ping Pong Balls
[GCJ 2008 Finals] Ping Pong Balls
Description
一个大房间里布满了捕鼠夹,这些捕鼠夹按网格排列。每个捕鼠夹上都装有两个乒乓球,精心放置,使得当捕鼠夹被触发时,这两个乒乓球会被弹射出去,落到其他捕鼠夹上并触发它们。房间的墙壁是粘性的,任何碰到墙壁的球都会被吸收。
每当一个捕鼠夹被击中时,会以相同的方式发射两颗乒乓球:它们的运动由相对于发射捕鼠夹的 和 位移决定。你可以选择向房间发射一颗乒乓球。它会击中某个捕鼠夹,触发它并发射出两颗球。这两颗球又会触发另外两个捕鼠夹,然后又有四颗球飞出……当一切尘埃落定时,许多捕鼠夹被触发,但仍有一些捕鼠夹没有被任何球击中。
你需要计算最终会有多少个捕鼠夹被触发。
例如(见第一个样例),下图展示了一个宽为 ,高为 的房间。每个捕鼠夹发射的两颗乒乓球的方向分别为 和 。你最初发射的球击中了位置 的捕鼠夹。最终,共有 个捕鼠夹被触发。

Input Format
输入的第一行为测试用例数 。接下来有 组测试数据。每组数据包含四行。
第一行为捕鼠夹网格的尺寸(即房间的尺寸),给出宽度 和高度 。
接下来的两行分别给出两颗乒乓球的目的地,以 和 的位移表示。例如,如果这两行为 和 ,则触发一个捕鼠夹会发射两颗球:一颗会击中正上方的捕鼠夹,另一颗会击中右上方的捕鼠夹。
最后一行为两个整数,分别表示最初被乒乓球击中的捕鼠夹的列和行( 表示左下角的捕鼠夹)。
Output Format
对于每组测试数据,输出一行,格式为 "Case #: ",其中 表示测试用例编号(从 开始), 表示被触发的捕鼠夹总数(包括最初被击中的那个)。
3
5 3
-1 0
-1 -1
4 2
50 50
0 1
1 1
10 10
6 2
2 0
3 0
0 0
Case #1: 12
Case #2: 820
Case #3: 5
Hint
数据范围
- 两个位移向量都不会是零向量。
小数据范围(4 分,测试点 1 - 可见)
大数据范围(11 分,测试点 2 - 隐藏)
由 ChatGPT 4.1 翻译
京公网安备 11011102002149号