CF1438B.Valerii Against Everyone

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Valerii Against Everyone

题目描述

给定一个长度为 nn 的数组 bb。我们定义另一个长度为 nn 的数组 aa,其中 ai=2bia_i = 2^{b_i}1in1 \leq i \leq n)。

Valerii 说,对于数组 aa 的任意两个不相交的子数组,它们的元素和都不相同。你想要判断他是否错了。更正式地说,你需要判断是否存在四个整数 l1,r1,l2,r2l_1, r_1, l_2, r_2,满足以下条件:

  1. 1l1r1<l2r2n1 \leq l_1 \leq r_1 < l_2 \leq r_2 \leq n
  2. $a_{l_1} + a_{l_1+1} + \ldots + a_{r_1} = a_{l_2} + a_{l_2+1} + \ldots + a_{r_2}$。

如果存在这样的四个整数,你就能证明 Valerii 是错的。请判断这样的四个整数是否存在。

数组 cc 是数组 dd 的一个子数组,如果 cc 可以通过从 dd 的开头删除若干(可能为零或全部)元素和从结尾删除若干(可能为零或全部)元素得到。

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 tt1t1001 \leq t \leq 100),表示测试数据组数。

每组测试数据的第一行包含一个整数 nn2n10002 \leq n \leq 1000)。

每组测试数据的第二行包含 nn 个整数 b1,b2,,bnb_1, b_2, \ldots, b_n0bi1090 \leq b_i \leq 10^9)。

输出格式

对于每组测试数据,如果存在两个不相交的子数组在 aa 中具有相同的元素和,则在单独一行输出 YES。否则输出 NO。

注意,输出的字母大小写均可。

说明/提示

在第一个样例中,a=[16,8,1,2,4,1]a = [16, 8, 1, 2, 4, 1]。选择 l1=1l_1 = 1r1=1r_1 = 1l2=2l_2 = 2r2=6r_2 = 6 是可行的,因为 16=(8+1+2+4+1)16 = (8 + 1 + 2 + 4 + 1)

在第二个样例中,可以验证不存在这样的两个子数组。

由 ChatGPT 4.1 翻译

样例

2
6
4 3 0 1 2 0
2
2 5
YES
NO

在线编程 IDE

建议全屏模式获得最佳体验