简单构造题。注意分奇偶这个常见套路。
题意
给定 $n$,试构造 $1\sim n$ 的排列满足下列限制中的一条,或报告无解:
- $n$ 个前缀和在模 $n$ 意义下互不相同;
- $n$ 个前缀积在模 $n$ 意义下互不相同。
给定需满足的限制与 $n$,求排列。
多测,$T\le 10,n\le 10^5$。
source: luogu P3599 Koishi Loves Construction
思路
第一问
奇数显然不行:$n\mid 1+\cdots+n$,因而 $Sn=0$。若 $n$ 放在第 $i$ 位($i\ne 1$),则 $S_i=S{i-1}$,矛盾,因而 $i=1$。此时 $S_1=S_n=0$,亦矛盾。
对于偶数 $n$:首先放置 $n$ 为首位。对于剩下的部分,我们试着两两配对使和为小定值。这里取 $1$,那么 $S{2k}=k,S{2k+1}=k+a_{2k+1}$(先删去开头的 $0$)。于是发现偶数项不断上升,尝试将奇数项不断下降,于是构造出 $2,-1,4,-3,5,-4,\cdots$。易验证正确性。时间复杂度 $\Theta(n)$。
第二问
非 $4$ 合数显然不行:如果 $n$ 不在末位而在第 $i$ 位,则 $Sj=0(j\ge i)$ ,矛盾。故 $n$ 在末位,$S_n=0$。由 $n\mid (n-1)!$ 知 $S{n-1}=0$,矛盾。
$1,2,4$ 特判一下,剩下奇素数的情况。$n$ 放末位,前面需使前缀积互不相同。考虑求离散对数,转化为 $n-1$ 的第一问。时间复杂度 $\Theta(n)$。
代码
1 |
|