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; }