物流企业网站有哪些,c 网站开发简单实例,腾讯社交广告平台,建站必须要域名吗描述一个由 n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方向任意走一步,并且有些格子是不能走动,求从起点到终点经过每个格子至多一次的走法数。输入第一行一个整数 T 表示有 T 组测试数据。(T 110)对于每组测试数据:第一行两个整数 n, m,…描述一个由 n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方向任意走一步,并且有些格子是不能走动,求从起点到终点经过每个格子至多一次的走法数。输入第一行一个整数 T 表示有 T 组测试数据。(T 110)对于每组测试数据:第一行两个整数 n, m,表示迷宫有 n * m 个格子。(1 n, m 6, (n, m) !(1, 1) ) 接下来 n 行,每行 m 个数。其中第 i 行第 j 个数是 0 表示第 i 行第 j 个格子可以走,否则是 1 表示这个格子不能走,输入保证起点和终点都是都是可以走的。任意两组测试数据间用一个空行分开。输出对于每组测试数据,输出一个整数 R,表示有 R 种走法。样例输入32 20 10 02 20 11 02 30 0 00 0 0样例输出104 #include stdio.h
#include string.h
int map[7][7],r0,n,m,book[7][7];
void fun(int x,int y)
{if(xnym){r;return ;}if(map[x][y]1||x1||xn||book[x][y]1||y1||ym){return ;}book[x][y]1; fun(x,y1); fun(x,y-1);fun(x1,y);fun(x-1,y);book[x][y]0;
}
int main()
{int t,i,j;memset(book,0,sizeof(book));scanf(%d,t);while(t--){r0;scanf(%d%d,n,m);for(i1;in;i){for(j1;jm;j){scanf(%d,map[i][j]);}}fun(1,1);printf(%d\n,r);} return 0;
}深搜