题解:本题主要考查鸽巢原理
简要题意:有n种数字,有ai个i(1≤i≤n),将它们排成一个序列,使得序列中相邻两项不相同,问存不存在。
1.鸽巢原理:设最多的数字个数为maxx,数字总数为ans。根据鸽巢原理2maxx>ans+1不存在,2s≤sum+1就有解。
代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
long long n,m,sum,maxx=-1,ans;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
ans=0;maxx=-1;
cin>>m;
for(int j=1;j<=m;j++)
{
cin>>sum;
ans+=sum;
maxx=max(maxx,sum);
}
if(maxx*2<=ans+1)cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}