边界条件可以用样例推出来。
首先m = 0时是1(即空空间)
然后n = 1时是m * 2(用样例画一画)
由递推式可以得到n = 0时是2。
/* Telekinetic Forest Guard */
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long LL;
const int maxn = 20, maxm = 105;
LL dp[maxn][maxm];
inline LL dfs(int n, int m) {
if(m == 0) return 1;
if(n == 0) return 2;
if(dp[n][m]) return dp[n][m];
return dp[n][m] = dfs(n - 1, m - 1) + dfs(n, m - 1);
}
int main() {
int n, m; scanf("%d%d", &m, &n);
printf("%lld\n", dfs(n, m));
return 0;
}