#P17263. [ICPC 2017 Urumqi R] Friends

    ID: 19653 远端评测题 3000ms 512MiB 尝试: 0 已通过: 0 显示难度提高+/省选− 上传者: 标签>搜索数学图论2017数论图论建模概率论ICPCbitset

[ICPC 2017 Urumqi R] Friends

题目描述

有些人从庞大而多样的朋友圈中受益,另一些人则偏爱较小的朋友和熟人圈子。函数又何尝不是如此。

考虑若干个由参数 pp 和 μ\mu (0≤μ<p0 \le \mu < p) 定义的函数,记为

f0,f1,…,fp−1.f_0, f_1, \dots, f_{p-1}.

其中 pp 是一个质数,μ\mu 是一个整数。

函数 fif_i 在整数 x∈{0,1,…,p−1}x \in \{0, 1, \dots, p-1\} 处的值定义为

$$f_i(x) = ((x^{i + 1} \bmod p) + (\mu^{i + 1} \bmod p)) \bmod 7.$$

我们称 {0,1,…,p−1}\{0, 1, \dots, p - 1\} 的一个子集 SS 为一个 朋友圈,如果 SS 中的所有函数在至少一半的位置上取相同的值。更确切地说,一个朋友圈是 {0,1,…,p−1}\{0, 1, \dots, p-1\} 的一个子集 S={a1,a2,…,au}S=\{a_1, a_2, \dots, a_u\}。它包含 uu 个函数 fa1,fa2,…,fauf_{a_1}, f_{a_2}, \dots, f_{a_u},且它们在 {0,1,…,p−1}\{0, 1, \dots , p - 1\} 中 vv 个不同的位置上取值相同,并且满足 2v≥p2v \ge p。

进一步地,我们称一个朋友圈是 有价值的,如果它是极大的。也就是说,任何真包含一个“有价值的朋友圈”的更大集合都不是朋友圈。

请找出并列出所有的“有价值的朋友圈”。

输入格式

输入包含多组测试数据。第一行是一个整数 TT (1≤T≤2101 \le T \le 2^{10}),表示测试数据的组数。

对于每组测试数据,有一行包含两个整数 pp 和 μ\mu,其中 pp 是一个质数且 p≤100p \le 100。

输出格式

对于每组测试数据,若“有价值的朋友圈”的总数为 FF,则输出 F+1F + 1 行。

前 FF 行,每行输出一个 {0,1,…,p−1}\{0, 1, \dots , p - 1\} 的子集,每个子集应以升序数字列表的形式给出。所有有价值的朋友圈应按照字典序输出。最后一行输出字符串 “END” 作为结束标志。

2
5 3
7 4
0 4
1
2
3
END
0 3 6
1 4
2 5
END

提示

翻译由 DeepSeek V4 Pro 完成