首页 > 试题广场 >

相等序列

[编程题]相等序列
  • 热度指数:5903 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
题目给定a1,a2...an,这样一个长度为n的序列,现在你可以给其中一些元素加上一个值x(只能加一次),然后可以给另外一些值减上一个值x(只能减一次),剩下的元素不能再进行操作。问最后有没有可能找到一个值x使所有元素的值相等。

输入描述:
输入第一行为一个整数k,代表有k个序列(k<100),接下来有2*k行:
偶数行为一个整数n,代表给定序列的长度(1<=n<=100,000)
奇数行包含n个元素,a1,a2...an,代表序列中的元素(0<=ai<=100,000)



输出描述:
输出k行,每行一个YES或者NO
示例1

输入

1
5
1 3 3 2 1

输出

YES
头像 小牛冲冲冲jiang
发表于 2021-09-18 05:34:14
新学了一个 treeset 集合 import java.util.Scanner; import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = n 展开全文
头像 bandiaoz
发表于 2024-12-26 01:02:08
解题思路 这是一道序列判定题目,主要思路如下: 关键观察: 每个元素最多只能被操作一次(加 或减 ) 要使所有元素相等,最终值必须是原序列中的某个值 判断条件: 如果去重后元素个数小于3,一定可以实现 如果去重后元素个数大于3,一定不能实现 如果去重后正好3个元素,中间值必须是两端值 展开全文
头像 牛客444857323号
发表于 2023-10-25 11:18:09
import sys k = int(input()) for i in range(k): n = int(input()) # 因为只能同步加减一次,说明数字的种类不能超过三种,超过三种无法满足一次 a = sorted(list(set(list(map(int,in 展开全文