Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;using LL = long long int;LL MOD = 1e9 + 7;class Solution {public:int solve(int n, int k) {vector<vector<LL>> dp(n+1, vector<LL>(n+1));for(int i = 0; i <= n; ++ i) {for(int j = i; j <= n; ++ j) {if(i == 0 || j == 0) {dp[i][j] = 1;}else if(i == j) {for(int k = 0; k < i; ++ k) {dp[i][i] += dp[k][k] * dp[i-k-1][i-k-1] % MOD;dp[i][i] %= MOD;}}else {dp[i][j] = dp[i][j-1];for(int k = 1; k <= i; ++ k) {dp[i][j] += dp[i-k][j-k-1] * dp[k][k] % MOD;dp[i][j] %= MOD;}}}}if(k == 0) {