#P125. [Sleeping Cup #5] 二元运算

[Sleeping Cup #5] 二元运算

负责人

注意

本题需要使用文件读写(calc.in / calc.out)。

在本题中,你可以使用以下代码,并调用 divs(a, b) 以求出 ba\bm{\dfrac{b}{a}}108+7\bm{10^8+7} 取模的结果。你需要保证 1a108+6\bm{1 \le a \le 10^8+6}0b108+6\bm{0 \le b \le 10^8+6}

int divs(int a, int b, int p = 1e8 + 7)
{
	if (b % a == 0) return b / a;
	int x = divs(p % a, a - b % a, a);
	return (1ll * x * p + b) / a;
}

题目背景

2lf 是一位喜欢定义新运算的 whk 选手……

题目描述

求 $n \otimes (n-1) \otimes (n-2) \otimes \ldots \otimes 1$ 的值(运算从左到右进行)。其中:

xy=y2+2023x833+xyx \otimes y =\dfrac{y^2+2023x}{833+xy}

答案对 108+710^8+7 取模。

可以证明答案在模 108+710^8+7 意义下存在。

输入格式

本题有多组数据。

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

下面 TT 行,每行一个正整数 nn

输出格式

TT 行,每行一个整数,表示答案。

答案对 108+710^8+7 取模。

可以证明答案在模 108+710^8+7 意义下存在。

样例

3
1
2
3
1
74730549
27985437

样例解释

21=40478352 \otimes 1=\dfrac{4047}{835},取模后为 7374054973740549

$3 \otimes 2 \otimes 1=\dfrac{12286518}{704960}=\dfrac{6143259}{352480}$,取模后为 2798543727985437

数据范围

1T10001 \le T \le 10001n1010001 \le n \le 10^{1000}

官方题解

link