2 条题解

  • 3
    @ 2024-8-19 7:28:39

    首先注意到是排列,所以值域上每个数属于且仅属于一个等差数列。

    令两个等差数列的公差为 d1,d2d1,d2d1d2d1\le d2

    假设我们确定 d1,d2d1,d2,方便观察合法等差数列的情况。

    d1=1d1=1d2=1d2=1 时,两个等差数列把值域分成两半。维护前缀最大最小值容易判断。

    d1=1d1=1d21d2\neq1 时,此时值域被其中一个等差数列删去中间一段,前后剩余都是公差为 11 的等差数列,则要满足剩下的数能组成等差数列且公差不为 11,前后必然只能剩余一个数。维护前缀最大最小值容易判断。

    d1=2d1=2 时,此时值域被其中一个等差数列间隔的删去,剩余的必然也是一个公差为 22 的等差数列。维护前缀奇偶性容易判断。

    d1>2d1>2 时,此时 1122 被归入不同的等差数列作为首项,而 33 无法被归入任何一个等差数列,故不存在解。

    于是简单判断即可。时间复杂度 O(n)O(n)

    信息

    ID
    37
    时间
    1000ms
    内存
    512MiB
    难度
    3
    标签
    递交数
    367
    已通过
    102
    上传者