1 条题解

  • 0
    @ 2024-11-11 15:00:33

    操作:选择一个整数ii (2in1)(2 \le i \le n-1),若ai1=ai+1a_{i-1}=a_{i+1},则可以将aia_i变为ai1a_{i-1}

    分析

    可以想到aa中所有元素最终都会变为a1a_1ana_n(因为a1a_1ana_n必定相等,所以后面都用a1a_1代替)。

    因为必须满足要求ai1ai+1a_{i-1}和a_{i+1}相等时才能改变aia_i,所以只要有连续两个与a1a_1不相等,这个数列就不再完美。

    所以我们只要让两个与a1a_1不相等的数挨在一起就行了。

    可以储存每一个与a1a_1不相等的数的下标,枚举他们直接的距离,其实就是需要删除的数的数量,取最小值。

    另一种方法就是让a1a_1ana_n不相等,因为无法对他们操作,对比这两组方法的最小值即可

    • 1

    信息

    ID
    1056
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    23
    已通过
    1
    上传者