TonyYin's Blog

Back

题意

Task1:试判断能否构造并构造一个长度为 nn1n1 \dots n排列,满足其 nn前缀和nn 的意义下互不相同。若存在,请给出一种构造方案。

Task2:试判断能否构造并构造一个长度为 nn1n1 \dots n排列,满足其 nn前缀积nn 的意义下互不相同。若存在,请给出一种构造方案。

测试点类型 111010 分,满足 X=1X = 11n101 \leq n \leq 10
测试点类型 224040 分,满足 X=1X = 11n1051 \leq n \leq {10}^5
测试点类型 331010 分,满足 X=2X = 21n101 \leq n \leq 10
测试点类型 444040 分,满足 X=2X = 21n1051 \leq n \leq {10}^5

样例输入 #1

1 1
8
plaintext

样例输出 #1

2 8 7 6 5 4 3 2 1
plaintext

样例输入 #2

2 1
11
plaintext

样例输出 #2

2 1 2 3 5 10 6 7 4 9 8 11
plaintext

题解

设序列为 aia_i,分别讨论两个子任务。

Task1

si=(j=1iai)modns_i=(\sum\limits_{j=1}^i a_i)\bmod n,可以有如下发现:

  1. l,r,slsr(modn)\forall l, r, s_l\equiv s_r\pmod n 当且仅当 srsl10(modn)s_r-s_{l-1}\equiv 0\pmod n. 因此不存在区间 [l,r][l, r] 的区间和是 nn 的倍数。
  2. ai=na_i=n 时,i=1i=1.
  3. 2n2\nmid nn1n\neq 1,无解。

接下来对有解情况进行构造。

发现 nn 必定为偶数,要想让 ss 构成 modn\bmod n 意义下的完全剩余系,考虑把所有偶数在模意义下取相反数。

也就是说,使:

s={0,1,2,3,4,5,,n1}s=\{0, 1, -2, 3, -4, 5, \cdots, n-1\}

注意到,所有偶数的符号为负,再加上 nn 变为正数后,仍为偶数,所以 ss 仍然满足题意。

则有 aia_i 的通项公式:

ai={ni+1,2ii1,2ia_i= \left\{ \begin{array}{lr} n-i+1, &2\mid i\\ i-1, &2\nmid i \end{array} \right.

注意 a1=n0a_1=n\neq 0.

Task2

si=(j=1iai)modns_i=(\prod\limits_{j=1}^i a_i)\bmod n,可以有如下发现:

  1. l,r,slsr(modn)\forall l, r, s_l\equiv s_r\pmod n 当且仅当 srsl10(modn)\frac{s_r}{s_{l-1}}\equiv 0\pmod n. 因此不存在区间 [l,r][l, r] 的区间积是 nn 的倍数。
  2. ai=na_i=n 时,i=ni=n.
  3. ai=1a_i=1 时,i=1i=1.
  4. nn 为合数时(44 除外),n(n1)!n\mid (n-1)!,所以 sn1sn(modn)s_{n-1}\equiv s_n\pmod n,无合法方案。

因此序列开头为 11,末尾为 nnnn 为质数,想到 si=is_i=i 是否可行?

下面在 si1+1si(modn)s_{i-1}+1\equiv s_i\pmod n 的情况下构造:

si1+1si1×ai(modn)si1×(ai1)1(modn)ai=inv(si1)+1(modn)\begin{aligned} s_{i-1} +1 &\equiv s_{i-1} \times a_i &\pmod{n}\\ s_{i-1} \times (a_i-1) &\equiv 1 &\pmod{n}\\ a_i &= \operatorname{inv}(s_{i-1})+1 &\pmod{n} \end{aligned}

于是可以从头开始递推完成构造。

【洛谷-P3599】Koishi Loves Construction
https://www.tonyyin.top/blog/oi-solution/p3599
Author TonyYin
Published at June 19, 2022
Comment seems to stuck. Try to refresh?✨