Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;const int MOD = (int)1e9 + 7;const int N = 301;const int K = 11;int dp[N][N][N];int getAns(int n, int m, int k) {if (n < 0 || m < 0 || k < 0) {return 0;}if (n < k) {return 0;}if (n == k) {return 1;}if (dp[n][m][k] != -1) {return dp[n][m][k];}int res = (getAns(n, m - 1, k + 1) + getAns(n - 1, m, k - 1)) % MOD;if (k == 0) {res = (res + getAns(n, m - 1, k)) % MOD;}dp[n][m][k] = res;//cerr << n << ' ' << m << ' ' << k << ' ' << res << endl;return res;