划分众数
题目描述
给定一个序列 $a_1,a_2,\dots,a_n$ 。
如果一个长度为 $m$ 的序列中存在某个数字出现了严格大于 $\lfloor\frac{m}{2}\rfloor$ ( $m$ 除以 $2$ 后下取整)次,那么就称这个数字是该序列的严格众数。否则该序列没有严格众数。
请问是否存在一种方案,将 $a$ 划分为若干个区间(可以为 $1$ 个),使得这些区间互不相交且并集为整个序列,且每个区间形成的序列都没有严格众数?
一个测试点可能包含多组数据。
输入格式
第一行一个整数 $T$ ,表示测试组数。
接下来对于 $T$ 组数据中的每一组,输入两行(一个整数和一个序列),分别表示序列长度 $n$ 和序列 $a$ 。
输出格式
$T$ 行,每行一个字符串 Yes 或 No (不可改变大小写),表示该组数据是否有解。
样例 #1
样例输入 #1
2
6
1 1 4 5 1 4
4
2 3 3 3
样例输出 #1
Yes
No
提示
样例解释
对于第一组数据,下面给出一组构造方法:
将序列分为两段 1 1 4 5 和1 4`,由于两段都没有严格众数,所以满足题意。
对于第二组数据,可以证明无解。
数据范围
对于 $30%$ 的数据,满足 $n\leq 5$ 。
对于 $70%$ 的数据,满足 $n\leq 1000$ 。
对于 $100%$ 的数据,满足 $T\le 10,n\leq 100000,1\leq a_i\leq 10^9$ 。
#include <iostream>
using namespace std;
int main() {
return 0;
}