2 条题解

  • 0
    @ 2025-10-13 20:29:11

    saki酱●█▀█▄saki酱●█▀█▄saki酱●█▀█▄

    首先,整个数组的总和不随操作与否而变化,而如果最后所有元素可能可以相等的一个前提是:数组所有元素和是数组大小的某个正整数倍(x)。其次,一个元素操作后可能影响的其他元素的序号的奇偶性必定与它本身的序号奇偶性一致,所以将数组分为奇数序号部分和偶数序号部分分别取和判断是否为元素数量的x倍即可

    参考代码(python)

    from sys import stdin,setrecursionlimit
    from math import inf,ceil,sqrt
    from collections import Counter,deque
    
    def solve():
        s1,s2=0,0
        for i in range(n):
            if i&1:
                s1+=a[i]
            else:
                s2+=a[i]
        if s1==g*(n//2) and s2==g*ceil(n/2):
            print('YES')
        else:
            print('NO')
    
    for _ in range(int(stdin.readline())):
        n=int(stdin.readline())
        a=[int(_) for _ in stdin.readline().split()]
        if sum(a)%n!=0:
            print('NO')
            continue
        g=sum(a)//n
        solve()
    
    

    [2025 实验室一面] saki酱●█▀█▄saki酱●█▀█▄saki酱●█▀█▄

    信息

    ID
    1097
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    77
    已通过
    14
    上传者