下面是样例示意图:
输入数据包括五个参数:m,n,x,y,K
其中m和n的范围均为是[1,10],K的范围是[0,10]。
0<=x<m,0<=y<n。
输出成功逃跑的路径数量。
2 3 0 1 2
6
#include <stdio.h> #include <stdlib.h> int depth_first_search_algorithm(const int m, const int n, int x, int y, int k) { if (x < 0 || y < 0 || x == n || y == m) return 1; if (k == 0) return 0; int paths = 0; paths += depth_first_search_algorithm(m, n, x - 1, y, k - 1); paths += depth_first_search_algorithm(m, n, x + 1, y, k - 1); paths += depth_first_search_algorithm(m, n, x, y - 1, k - 1); paths += depth_first_search_algorithm(m, n, x, y + 1, k - 1); return paths; } int main(const int argc, const char* argv[]) { int m, n, y, x, k; fscanf(stdin, "%d %d %d %d %d", &m, &n, &y, &x, &k); fprintf(stdout, "%d\n", depth_first_search_algorithm(m, n, x, y, k)); return 0; }