显示原始代码
#include <bits/stdc++.h>
using namespace std;
#define M 998244353
int fun(int n, int m) {
int sz = max(n, m);
vector<int> mem(2 * sz + 1);
mem[sz] = 1;
for (int i = 1; i <= n; i++) {
vector<int> tem(2 * sz + 1);
for (int j = -i; j <= i; j++) {
tem[j + sz] = 3 * mem[j + sz - 1] % M + mem[j + sz] % M + 2 * mem[j + sz + 1] % M;
}
for (int j = -i; j <= i; j++) {
mem[j + sz] = tem[j + sz];
}
}
int ans = 0;
for (int i = -m; i < m + 1; i++) {
ans = ans + mem[i + sz] % M;
}
return ans;
}
int main() {
int cnt;
scanf("%d", &cnt);
for (size_t i = 0; i < cnt; i++) {
int n, m;
scanf("%d", &n);
scanf("%d", &m);
printf("%d\n", fun(n, m));
}
return 0;
}