#CSP1126. 车马象 (chess)

车马象 (chess)

题目描述

小 Z 和 小 Y 今天学了下象棋。

但是棋子太多啦,小 Z 根本看不过来,所以他决定一个一个研究。

小 Z 先研究了三种棋子的移动方式:车走直,马走日,象飞田。

小 Y 想看看小 Z 学的怎么样,所以他问了小 Z 一共 mm 个问题,第 ii 个问题是 :

  • 如果棋盘大小为 ai×bia_i\times b_i (格点),棋盘上只有一个 (车/马/象) 在第 cic_i 行第 did_i 列的位置。那么经过 eie_i 步,这个棋子可以形成多少种不同的路径?

具体的,我们将棋子 eie_i 步的移动经过的 ei+1e_i + 1 个点的坐标记录为一个序列。

我们认为两条路径不同,当且仅当序列中至少存在一个位置坐标不同。

可是刚学完怎么移动棋子的 小 Z 脑袋里早就一团浆糊啦,你快来帮帮他吧!

输入格式

chess.in 文件读入数据。

第一行一个整数,代表问题的个数 mm

接下来 mm 行,每行六个整数,代表每次询问为 opi,ai,bi,ci,di,eiop_i,a_i,b_i,c_i,d_i,e_i

opi=0op_i=0 ,则询问的棋子为车;

opi=1op_i = 1 ,则询问的棋子为马;

opi=2op_i = 2 ,则询问的棋子为象;

输出格式

输出到 chess.out 文件。

mm 行,第 ii 行一个整数,表示第 ii 个问题的答案,对 1926081719260817 取膜。

样例

6
0 5 5 1 1 2
1 5 5 1 1 2
2 5 5 1 1 2
0 10 9 4 5 100
1 10 9 4 5 100
2 10 9 4 5 100 
64
12
4
8980677
14680106
12361625

数据范围

对于所有的测试数据,保证:

$1\le m\le 50\ ,\ 1\le c_i\le a_i,\ 1\le d_i\le b_i,\ 1\le a_i * b_i\le 100, \ 1 \le e_i\le 10^9$

并且对于每个测试点,ai×bi>25a_i\times b_i> 25 的数据不超过 33 组。

测试点编号 1,2,3,4 5,6,7,8 9,10,11,12 13,14,15,16 17,18,19,20
opiop_i 1,21,2  0,1,20,1,2  0,1,20,1,2 00 0,1,20,1,2
ai×bia_i\times b_i\le 2525   100100   100100   100100   100100
eie_i\le 88 100100 1000010000 10910^9   10910^9  

车:如图(1)所示,车可以移动到棋盘中同一行或同一列的任意位置。

移动向量为 [x,0][x, 0][0,y][0, y]x,yx,y 为不为 00 的整数(不越出棋盘边界)。

马:如图(2)所示,马可以走“日”字,移动到图示的八个位置。

移动向量为 $[2, 1],[2, -1], [1, 2], [1, -2], [-1, 2], [-1, -2], [-2, 1], [-2, -1]$ (不越出棋盘边界)。

象:如图(3)所示,象可以走“田”字,移动到图示的四个位置。

移动向量为 [2,2],[2,2],[2,2],[2,2][2, 2],[2, -2], [-2, 2], [-2, -2] (不越出棋盘边界)。