P16643 [GKS 2018 #B] King's Circle

题目描述

在 Kickstartia 王国,人们记忆所及以来,第一次到处洋溢着庆祝的气氛:新国王的加冕日到了。按照加冕仪式的惯例,皇家游行队伍将穿过首都的街道。 首都可以看作是一个无限的二维平面,其中有无穷多条无限长的街道,相互间隔 1 米,水平方向和垂直方向贯穿整个平面。水平街道从上到下用从负无穷到正无穷的整数标记,垂直街道从左到右也用从负无穷到正无穷的整数标记。 首都有 $N$ 家咖啡馆,第 $i$ 家位于垂直街道 $V_i$ 与水平街道 $H_i$ 的交汇处。没有两家咖啡馆位于同一交叉口。为了让游行技术人员感到满意且吃饱喝足,你将恰好选择三家咖啡馆,供他们在途中停留。 为了在混乱中引入一些秩序,你额外决定游行必须从起点回到终点,并且其路径必须形成一个正方形(直边,所有边长相等)。咖啡馆可以位于正方形的任意位置(边上或角上)。 这立即带来了一个问题:根据你选择的三家咖啡馆,可能无法构造出一个经过这三家咖啡馆的正方形游行路线。因此,你的任务是找出:有多少个不同的三家咖啡馆的集合,使得至少存在一个包含该集合中全部三家咖啡馆的正方形游行路线?(两个集合不同当且仅当其中一个包含另一个所没有的咖啡馆。)

输入格式

输入的第一行给出测试用例的数量 $T$。接下来有 $T$ 个测试用例。每个测试用例由一行包含十个整数组成:$N$、$V_1$、$H_1$、$A$、$B$、$C$、$D$、$E$、$F$ 和 $M$。 $N$ 是咖啡馆的数量。第一家咖啡馆位于垂直街道 $V_1$ 与水平街道 $H_1$ 的交汇处。 剩余咖啡馆的位置 $V_i$、$H_i$($i = 2$ 到 $N$)可按如下方式生成: * $V_i = (A \times V_{i-1} + B \times H_{i-1} + C) \bmod M$ * $H_i = (D \times V_{i-1} + E \times H_{i-1} + F) \bmod M$

输出格式

对于每个测试用例,输出一行,格式为 `Case #x: y`,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是满足上述条件的咖啡馆集合的数量。

说明/提示

在样例 #1 中,有四家咖啡馆,分别位于 $(1, 1)$、$(1, 0)$、$(0, 3)$ 和 $(4, 0)$。如图所示,存在正方形游行路线经过以下咖啡馆集合:$(1, 1)$、$(1, 0)$、$(0, 3)$;或 $(1, 1)$、$(1, 0)$、$(4, 0)$;或 $(1, 0)$、$(0, 3)$、$(4, 0)$。不存在经过 $(1, 1)$、$(0, 3)$、$(4, 0)$ 这三个咖啡馆的正方形游行路线。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/po8bjtta.png) ::: 在样例 #2 中,有 $6$ 家咖啡馆,分别位于 $(3, 1)$、$(4, 1)$、$(5, 1)$、$(6, 1)$、$(7, 1)$ 和 $(8, 1)$。由于它们都在同一条垂直街道上,任意三个咖啡馆都存在经过它们的正方形游行路线。因此答案为 $\binom{6}{3} = 20$。 在样例 #3 中,有 $3$ 家咖啡馆,分别位于 $(7, 24)$、$(19, 17)$、$(0, 34)$。不存在经过这三家咖啡馆的正方形游行路线,因此答案为 $0$。 **注意:** 对于本题的大数据集,我们不建议使用解释型/较慢的语言。 ### 限制条件 $1 \le T \le 100$。 $0 \le A < M$。 $0 \le B < M$。 $0 \le C < M$。 $0 \le D < M$。 $0 \le E < M$。 $0 \le F < M$。 $0 \le V_1 < M$。 $0 \le H_1 < M$。 对于所有 $i \neq j$,$(V_i, H_i) \neq (V_j, H_j)$。 **小数据集(测试集 1 – 可见)** $3 \le N \le 1000$。 $2 \le M \le 1000$。 **大数据集(测试集 2 – 隐藏)** $3 \le N \le 5 \times 10^5$。 $2 \le M \le 10^6$。 翻译由 DeepSeek V4 Pro 完成