1 条题解

  • 0
    @ 2026-9-9 9:02:18

    题解

    思路

    一次操作会令总和增加 T=N(N+1)/2T=N(N+1)/2。

    做法

    因此可行的必要条件是存在整数 MM 使 S+MTS+MT 能被 NN 整除:当 NN 为奇数时只能有 S≡0(modN)S\equiv0\pmod N;当 NN 为偶数时还允许 S≡N/2(modN)S\equiv N/2\pmod N。这个条件也充分。若当前总和还不能被 NN 整除,先加入排列 (1,2,…,N)(1,2,\ldots,N),此后平均数为整数。

    设当前有一项高于平均数、一项低于平均数。构造排列 PP,令这两个位置分别取 1,21,2,其余位置任意填入 33 到 NN;再令 Qi=N+1−PiQ_i=N+1-P_i,并交换高、低两个位置的 QQ 值。两次操作后,其余位置都增加 N+1N+1,高位只增加 NN,低位增加 N+2N+2,也就是在忽略所有位置共同增加的常数后把一个单位从高位转移到低位。不断执行即可使所有元素相等。

    复杂度

    操作次数不超过 10410^4,构造复杂度为 O(NM)O(NM),其中 MM 为输出的操作次数。

    • 1

    信息

    ID
    1580
    时间
    2000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者