time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given an array aa consisting of nn integers.
In one move, you can choose two indices 1≤i,j≤n1≤i,j≤n such that i≠ji≠j and set ai:=ajai:=aj. You can perform such moves any number of times (possibly, zero). You can choose different indices in different operations. The operation := is the operation of assignment (i.e. you choose ii and jj and replace aiai with ajaj).
Your task is to say if it is possible to obtain an array with an odd (not divisible by 22) sum of elements.
You have to answer tt independent test cases.
Input
The first line of the input contains one integer tt (1≤t≤20001≤t≤2000) — the number of test cases.
The next 2t2t lines describe test cases. The first line of the test case contains one integer nn (1≤n≤20001≤n≤2000) — the number of elements in aa. The second line of the test case contains nn integers a1,a2,…,ana1,a2,…,an (1≤ai≤20001≤ai≤2000), where aiai is the ii-th element of aa.
It is guaranteed that the sum of nn over all test cases does not exceed 20002000 (∑n≤2000∑n≤2000).
Output
For each test case, print the answer on it — "YES" (without quotes) if it is possible to obtain the array with an odd sum of elements, and "NO" otherwise.
Example
input
5
2
2 3
4
2 2 8 8
3
3 3 3
4
5 5 5 5
4
1 1 1 1
output
YES
NO
YES
NO
NO
在看到这题目的时候有点儿懵逼,没看懂英文什么意思,仔细研究了以下发现题意大致如下:
假设有一个数组a,里面的数值可以被赋值,例如:a[i] = a[j];找出是否有可能使数组中的和为奇数,若可以则输出yes,否则输出no;
有这样一种方法:
假设数组包含n个元素,若n个元素中含有偶数个奇数,其余均为奇数,根据题意可知,偶数可以被替换为奇数(不一定被全部替换)
可以查找数组中目前有多少个奇数:(有以下两个极端情况)
若奇数的个数为n,则说明该数组中每个数字都是奇数。若n为偶数,则不可能。否则就有可能。
若奇数个数为0个,则一定不能使数组中的和为奇数。
代码如下:
import java.util.Scanner;
public class Arraywithodd {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i=1;i <= n;i++) {
int t = sc.nextInt();
int data[] = new int[t];
int sum = 0;//记录是否是偶数个奇数
for(int j = 0;j<t;j++) {
data[j]=sc.nextInt();
if(data[j] % 2 !=0)
{
sum++;
}
}
if((t % 2 == 0 && sum == t) || sum == 0) {
System.out.println("NO");
}else {
System.out.println("YES");
}
}
}
}