DFS 枚举打表 小Z的矩阵
题意:一个矩阵 的每个数都大于或等于他的左边或者上边 问有多少种情况。输入n为矩阵的行m为矩阵的列。
思路:因为该矩阵最大为7*7所以直接打表枚举把每种行和列的情况都求出来,输入直接输出就行,用dfs:
对于位置x,y,我们判断这个位置放0,1,2的可能性
如果A[x-1,y] <= i && A[x,y-1]<=i (i=0,1,2)那么x,y位置就可以放i
之后赋值,继续搜索下一层(nex_x,new_y)的状态
当(x,y)不是每行最后一个数的时候,(nex_x,new_y) = (x,y+1)
否则 (nex_x,new_y) = (x+1,y);(一行一行的来赋值判断);
代码:
#include<stdio.h>
int a[10][10];
int aa[10][10];
int n,m;
int ans;
void dfs(int x,int y){
if(x > n){
ans ++;
return;
}
if(a[x - 1][y] <= 0 &