#P11507. [2022省队模拟]小W与骑士

[2022省队模拟]小W与骑士

题目描述

小W位于一个无限大的棋盘上,从格子(0,0)(0,0)出发,小W必须移动到格子(X,Y)(X,Y)处。

按照棋盘的规则,骑士只能从一个格子(u,v)(u,v)移动到格子(u+AX,v+AY)(u+AX,v+AY)(u+BX,v+BY)(u+BX,v+BY)。注意它可能不同于普通下棋里的骑士。

此外,桌子上还有KK个被封锁的牢房,小W无法继续前进。

你的任务是计算小W完成任务的不同方式。当且仅当两种方法的步数不同或存在ii,使得它们在第ii步后位于不同的单元中时,称为“不同”。

注意,骑士到达(X,Y)(X,Y)后可能继续移动。

输入格式(train.in)

第一行包含一个整数TT,表示测试用例的数量。每个测试用例描述如下:

第一行包含3个整数XX,YY,KK

第二行包含4个整数AXAX,AYAY,BXBX,BYBY

第三行包含KK对整数,每对代表一个被阻塞单元的坐标。如果K=0K=0,则该行不存在。

输出格式(train.out)

对于每个测试用例,一行输出模100000007100000007109+710^9+7)的方法数。如果有无限多个方法,那么改为输出1-1

样例输入 #1

3
3 3 0
1 2 2 1
9 9 2
1 2 2 1
1 2 6 6
1 1 0
0 0 0 0	

样例输出 #1

2
4
0

样例解释 #1

在第一个和第二个例子中,骑士的移动方式与普通骑士相似,但只允许两个方向。

在第一个示例中,有两种方法(0,0)(1,2)(3,3)(0,0) \to (1,2) \to (3,3)(0,0)(2,1)(3,3)(0,0)\to (2,1)\to (3,3)

在第三个例子中,我们的骑士不能移动,所以我们的骑士不能完成他的任务。

样例 #2

见下发样例。

数据说明与提示

对于100100% 的测试点,保证 1 T 5,0 K 5001 ≤ T ≤ 5 , 0 ≤ K ≤ 500 ,其他所有输入数据的绝对值不超过500500(0,0) (0, 0) (X, Y)(X, Y)不会被封锁 .

测试点编号 特殊性质
141 \sim 4 $
585 \sim 8 AyAx=ByBx\frac{Ay}{Ax}=\frac{By}{Bx}
9129 \sim 12 K=0K=0
132013 \sim 20 无限制