#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll mod = (ll)1e9 + 7;
int N, M;
ll dp[105][105][105];
int main() {
cin >> N >> M;
memset(dp, 0, sizeof(dp));
dp[0][0][2] = 1;
for (int i = 0; i <= N; i++) {
for (int j = 0; j < M; j++) {
if (i == 0 && j == 0) {
continue;
}
for (int k = 0; k < M; k++) {
if (j > 0) {
dp[i][j][k] += dp[i][j - 1][k + 1];
}
if ((k % 2 == 0) && i > 0) {
dp[i][j][k] += dp[i - 1][j][k / 2];
}
dp[i][j][k] %= mod;
}
}
}
cout << (dp[N][M-1][1]%mod) << endl;
}
这个代码是主要看酒的数量来推测前一个状态的,但是不知道为什么会出现RE,感觉也不会有超出范围的情况,测试样例通过了