返回题解分享
讨论 / 题解分享/ 帖子详情

数组分割(编程题) - 题解

`

import java.util.*;
public class Main{
	 static Scanner sc = new Scanner(System.in);
	 static int MOD = (int)(1e9+7);
	 public static void main(String[] args) {
		int T = sc.nextInt();
		while(T-- > 0) {
			solve();
		}
	}
	 static void solve() {
		 int n = sc.nextInt();
		 int E = 0,O = 0;
		 for(int i = 1;i<= n;i++) {
			 int x = sc.nextInt();
			 if(x % 2 == 0) E++;
			 else O++;
		}
		 if(O % 2 !=0) System.out.println(0);
		 else System.out.println(myPow(E)*myPow(O-1)%MOD);
		 
	 }
	 static long myPow(long k) {
		 long ans = 1;
		 long base = 2;
		 while(k>0) {
			 if(k % 2 == 1) ans = ans % MOD * base % MOD;
			 base = base % MOD * base % MOD;
			 k /= 2;
		 }
		 return ans % MOD;
	 }
}
`
0 回复 0 转发 1 喜欢 6 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!