#P8356. 「WHOI-1」数列计数

「WHOI-1」数列计数

题目背景

不再拥有,数列陪伴我。

题目描述

这种数列满足下面这一条神奇的性质:

  • a0=0a_0=0
  • i[1,n]\forall i\in[1,n] 均有 ai=ai1+xa_i=a_{i-1}+x 或者 ai=ai1+ya_i=a_{i-1}+y
  • i[1,n],pai\forall i\in[1,n],p \nmid a_i

求这样的 {a}0n\{a\}_0^{n} 的数量。答案对 109+710^9+7 取模。

两个数列不同,当且仅当他们有一个下标存储的元素不同。

输入格式

一个输入文件包含多组数据。

第一行一个正整数 TT 表示测试点数目。

接下来 TT 行表示测试点。对于每组测试点,一行四个正整数,表示 n,p,x,yn,p,x,y

输出格式

TT 行,每行一个自然数表示该测试点的答案。

3
3 3 1 2
11 45 14 19
9876 10 114514 191981
2
1688
426554662

提示

样例 #1:

这样的 aa[0,1,2,4],[0,2,4,5][0,1,2,4],[0,2,4,5]

样例 #2、#3:

本来可爱的 Otm 已经写好了上万页的样例解释了,但是更可爱的 miku 把它删掉了所以 Otm 不想再写一遍了。


本题采用 Subtask\texttt{Subtask} 计分方式,只有通过该 Subtask\texttt{Subtask} 的所有测试点才能得到该点的分数。

Subtask\texttt{Subtask} 编号 特殊限制 分值
1 n20\sum n\leq20 10
2 p103p\leq10^3 30
3 xy,pxy,p 互质 10
4 50

对于所有测试数据,$1\leq T\leq10^3,1\leq\sum n\leq10^4, 1\leq x,y,p\leq10^9$,输入均为正整数。