先接收遍历的次数。之后统计数组中有多少个奇数和偶数。如果奇数有奇数个的话,就没有组合能都是偶数。如果奇数有偶数个的话,就要进行组合 。例如:一个S中偶数个奇数组合,另一个S中没有奇数,或者一个S中偶数个奇数组合,另一个S中也有偶数个奇数组合。或者一个S为空,另一个为全部值。组合为2的偶数次方加奇数次方-1。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i=scanner.nextInt();
while (i-->0) {
int length=scanner.nextInt();
int jishu=0;
int oushu=0;
for(int j=0;j<length;j++){
int nums = scanner.nextInt();
if(nums%2==0){
oushu++;
}else{
jishu++;
}
}
if(jishu%2==1){
System.out.println(0);
}else{
long guo=1;
for(int p=0;p<oushu;p++){
guo*=2;
guo%=1000000007;
}
for(int l=0;l<jishu-1;l++){
guo*=2;
guo%=1000000007;
}
System.out.println(guo);
}
}
}
}