题目描述
一个 N×M 的方格矩阵,每一个方格中包含一个字符 O 或者字符 X。
要求矩阵中不存在连续一行 3 个 X 或者连续一列 3 个 X。
问这样的矩阵一共有多少种?
输入描述
输入一行包含两个整数 N,M (1≤N,M≤5)。
输出描述
输出一个整数代表答案。
输入输出样例
示例
2 3
输出
49
运行限制
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {static int n,m,ans=0;static int[][] a;public static void main(String[] args) {Scanner scan = new Scanner(System.in);n=scan.nextInt();m=scan.nextInt();a=new int[n][m];dfs(0,0);System.out.println(ans);scan.close();}public static void dfs(int x,int y){if(x==n){ans++;return;}if((x<2||a[x-1][y]==0||a[x-2][y]==0)&&(y<2||a[x][y-1]==0||a[x][y-2]==0)){//设1代表X,0代表O,判断是否能放置Xa[x][y]=1;//在此坐标放置Xif(y<m-1){dfs(x,y+1);}else{dfs(x+1,0);}a[x][y]=0;}if(y<m-1){dfs(x,y+1);}else{dfs(x+1,0);}}
}
-
- 最大运行时间:1s
- 最大运行内存: 256M