#P10507. 高斯整数

高斯整数

高斯整数(guass)


题目描述

对于任意高斯整数 a+bi(a,bZ)a+bi\left(a,b\in \Z\right),定义它的 i1i-1 表示法为 0101 序列 d0,d1dmd_0,d_1\cdots d_m 使得:

  • a+bi=j=0mdj(i1)ja+bi=\sum_{j=0}^md_j\left(i-1\right)^j
  • dm0d_m\neq 0,除非 a+bi=0a+bi=0,此时令 m=0,d0=0m=0,d_0=0

可以证明对于任意高斯整数它的 i1i-1 表示法是唯一的。

定义 f(a+bi)=j=0mdjf\left(a+bi\right)=\sum_{j=0}^md_j,令 $G\left(L\right)=\sum_{a=-L}^{L}\sum_{b=-L}^Lf\left(a+bi\right)$

多组询问,每次给定 L,PL,PG(L)(modP)G\left(L\right)\pmod P

输入格式

第一行一个正整数 TT 代表数据组数。

后面 TT 行每行两个正整数,分别为 L,PL,P

输出格式

输出 TT 行,对于每组询问输出一个整数,为答案。

输入样例
4
1 998244353
2 998244353
500 998244353
1000000000000000 998244353
输出样例
20
75
10795060
558184759
样例解释

对于询问 11,$G\left(1\right)=f(-1-i)+f(-1)+f(-1+i)+f(-i)+f(0)+f(i)+f(1-i)+f(1)+f(1+i)$

99 个数的 i1i-1 表示法分别为 011011101111011101011111110011110101110101111101110111

对应的 ff 值为 2,4,1,3,0,2,4,1,32,4,1,3,0,2,4,1,3,和为 2020

数据范围

100%100\% 的数据,$1\le L\le 10^{18},1\le T\le 2\times 10^4,9\times 10^8\le P\le 10^9$。保证 PP 为素数。

每个测试点的分值为 1010

测试点编号 LL 约束 TT 约束
1 1000\le 1000 T=T=2×1042\times 10^4
2,3 106\le 10^6 T=1T=1
4,5 T=2×104T=2\times 10^4
6 =2k=2^k
7 =2k1=2^k-1
8,9,10 1018\le 10^{18}