G 相似
每两个偶数和奇数都能凑一组,所以奇数和偶数的数量为偶数时一定能配对。
并且最多多出一个奇数和一个偶数不能配对。
只要连续出现的组数超过一组,就可以控制多出来的那组奇数和偶数为连续组。
代码:
#include<bits/stdc++.h>
using namespace std;
int a[60],b[2];//数组b用来存奇数和偶数的数量
int main(){
int t;
cin>>t;
while(t--){
int n;
scanf("%d",&n);
memset(b,0,sizeof(b));
for(int i=0;i<n;i++){scanf("%d",&a[i]);b[a[i]%2]++;}
sort(a,a+n);
int cnt=0;//连续数组数计算
for(int i=1;i<n;i++){
if(a[i]-a[i-1]==1){
cnt++;i++;//i++防组数中有数重复
}
}
if(cnt*2>=b[0]%2+b[1]%2)printf("YES\n");//判断条件也写为cnt>=b[0]%2
else printf("NO\n");
}
return 0;
}
京公网安备 11010502036488号