题意:t 组数据,每组给出 n 个数,对于任意两个数 a[i]、a[j],可以令 a[i]=a[j],问在有限次操作的情况下,这 n 个数的和是否能变成一个奇数。
思路:首先我们可以反着想,怎么样不能实现
1.如果在这组数据全是偶数的话,那么无论怎样去操作,它们的和都是偶数。
2.如果这组数据全是奇数的话,当个数n为偶数的时候,它们的和都是偶数。
所以只要这组数据,不是不满足这两种情况那么他就可以满足。
#include<iostream>
using namespace std;
const int N = 2004;
int a[N];
int main()
{
int t ;
cin >> t;
while (t--)
{
int n = 0;
int ou = 0;
int ji = 0;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
if (a[i] % 2 == 0) ++ou;
else ++ji;
}
if (ou== n) cout << "NO" << endl;
else {
if (ji == n && n % 2 == 0)
{
cout << "NO" << endl;
}
else cout << "YES" << endl;
}
}
return 0;
}