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");
        	}
        	
        }
    }
}

posted on 2019-02-28 20:42  湫叶  阅读(122)  评论(0编辑  收藏  举报

导航