AT_abc443_g [ABC443G] Another Mod of Linear Problem
题目描述
给定整数 $N, M, A, B$。
定义整数序列 $X=(X_0, X_1, \ldots, X_{N-1})$,其中 $X_k = (A k + B) \bmod M$。
求满足 $0 \le k < N$ 且 $X_k > k$ 的整数 $k$ 的个数。
共有 $T$ 组测试数据,请分别求解每组数据。
输入格式
输入通过标准输入给出,格式如下:
> $T$
> $\text{case}_1$
> $\text{case}_2$
> $\vdots$
> $\text{case}_T$
每组测试数据格式为:
> $N$ $M$ $A$ $B$
输出格式
按顺序输出每组测试数据的答案,每个答案占一行。
说明/提示
### 样例解释 1
以第一组测试数据为例。
- 当 $k=0$ 时:$X_0 = (4 \times 0 + 3) \bmod 6 = 3$,此时 $X_0 > k$ 成立。
- 当 $k=1$ 时:$X_1 = (4 \times 1 + 3) \bmod 6 = 1$,此时 $X_1 > k$ 不成立。
- 当 $k=2$ 时:$X_2 = (4 \times 2 + 3) \bmod 6 = 5$,此时 $X_2 > k$ 成立。
- 当 $k=3$ 时:$X_3 = (4 \times 3 + 3) \bmod 6 = 3$,此时 $X_3 > k$ 不成立。
由此可知,满足 $0 \le k < 4$ 且 $X_k > k$ 的整数 $k$ 有 $k=0,2$,共计 2 个。因此第一行输出 $2$。
### 数据范围
- $1 \le T \le 3 \times 10^5$
- $1 \le N \le M \le 10^9$
- $0 \le A, B < M$
- 所有输入值均为整数。
由 ChatGPT 5 翻译