5666: 考拉
题目描述
从前,在一片美丽的树林里,居住着一只可爱的小考拉。一天,小狐狸在OJ上刷题的时候遇到了这样一个问题:
给定一个N行M列的网格,请在每一格上填上+1或-1,使得每行和每列的数的乘积都等于-1。求方案数。
小狐狸不会做于是找到了小考拉。小考拉也不会做。你能帮助他么?
输入
有多组数据。输入数据第一行包含T为数据组数。
下面T行每行依次包含两个整数N和M。
输出
输出T行每行一个整数,为方案数。注意方案数可能很大。
样例输入
复制样例数据
2
2 3
2 2
样例输出
0
2
提示
对于20%的数据有1 ≤ N, M ≤ 5
对于100%的数据有1 ≤ N, M ≤ 100, 1 ≤ T ≤ 10
画一下,发现规律;n,m只有都是奇数或者都是偶数才满足条件。而且方案数等于2^(n-1)*(m-1);
JavaBigInteger啧啧啧
import java.math.BigInteger;
import java.util.Scanner;
public class bigint {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int t = cin.nextInt();
while(t>0) {
t--;
int a=cin.nextInt();
int b=cin.nextInt();
if((a%2==0&&b%2==0)||(a%2!=0&&b%2!=0)) {
a=a-1;
b=b-1;
BigInteger ans = new BigInteger("2");
ans=ans.pow(a*b);
System.out.println(ans);
}
else {
System.out.println("0");
}
}
}
}