题意
长度为 $n(1\le n \le 2e6)$ 的数组 $(0\le a_i\le 9)$, 下标为 $[0,n-1]$ , 你要取 $n$ 个数构成一个长度为 $n$ 的数组 $b$ , 假设第一次选 $a[i]$ , 则 $b[1]=a[i], b[2]=a[(i^2+1)\%n],\cdots$
输出字典序最小的 $b$
题解
显然取的下标序列存在循环节, 由打表可知, 循环节的长度不会超过 $21$, 所以我们只用枚举前 $21*20$ (循环节的最大$lcm$)位就可以找到保证 $b$ 字典序最小的起始点, 好像数据太水了,只用枚举前 21 位就可以了
代码
1 |
|