#include<bits/stdc++.h> using namespace std; #define N 10     int DFS[N][N]={0}; int dfs(int m, int n){   for(int i=0; i < m; ++i){    if(DFS[i][n]){      DFS[m][n] += DFS[i][n];    }else{      DFS[m][n] += dfs(i, n);    }   }   for(int j = 0; j < n; ++j){    if(DFS[m][j]){      DFS[m][n] += DFS[m][j];    }else{      DFS[m][n] += dfs(m, j);    }   }   DFS[n][m] = DFS[m][n];   return DFS[m][n]; } int main(){           DFS[0][0] = 1;   cout << dfs(3,3) <<endl;   return 0; } 结果是106,动态规划比较容易想到,但是坑爹的是每次不止能走一步,可以走1-3步,所以20是错的。
点赞 评论

相关推荐

牛客网
牛客企业服务