P4932 浏览器
题目背景
\_\_stdcall 在用 Edge 玩 slay 的时候,鼠标会经常失灵,这让她十分痛苦,因此她决定也要让你们感受一下 Edge 制造的痛苦。
题目描述
\_\_stdcall 给了你 $n$ 个点,第 $i$ 个点有权值 $x[i]$,对于两个点 $u$ 和 $v$,如果 $x_u \operatorname{xor}x_v$ 的结果在二进制表示下有奇数个 $1$,那么在 $u$ 和 $v$ 之间连接一个 Edge,现在 \_\_stdcall 想让你求出一共有多少个 Edge。
如果你没能成功完成任务,那么 \_\_stdcall 会让你痛苦一下,你这个测试点就没分了。
输入格式
一行六个整数,$n$,$a$,$b$,$c$,$d$,$x_0$。
$n$ 是点的个数,每个点的权值需要用如下的方式生成。
你需要使用 $a$,$b$,$c$,$d$ 和 $x_0$ 生成一个数组x,生成方式是这样的。
$$x_i = (ax_{i-1}^2 + bx_{i-1} + c) \bmod d$$
$x_i$ 就是第 $i$ 个点的权值,点的标号是 $1$ 到 $n$。
输出格式
输出一个整数,表示一共有多少个 Edge。
说明/提示
我们用 $v$ 表示权值中的最大值。
对于前 $20\%$ 的数据,$n \le 10$。
对于前 $40\%$ 的数据,$n \le 100$。
对于前 $60\%$ 的数据,$n \le 1000$。
对于前 $80\%$ 的数据,$n \le 1 \times 10^6$。
对于前 $90\%$ 的数据,$v \le 1 \times 10^6$。
对于 $100\%$ 的数据,$n \le 1 \times 10^7,v \le 1 \times 10^9$。
保证 $a$,$b$,$c$,$d$,$x_0$ 都是 `int` 内的非负整数。