| 比赛 |
寒假集训2 |
评测结果 |
AATTT |
| 题目名称 |
UNO |
最终得分 |
40 |
| 用户昵称 |
dbk |
运行时间 |
3.333 s |
| 代码语言 |
C++ |
内存使用 |
27.52 MiB |
| 提交时间 |
2026-02-25 12:19:04 |
显示代码纯文本
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 110, M = 998244353;
int dp[N][N][N][4];
int n, m, kk;
signed main(){
freopen("UNO.in", "r", stdin);
freopen("UNO.out", "w", stdout);
cin >> n >> m >> kk;
dp[1][0][0][1] = 1;
dp[0][1][0][2] = 1;
dp[0][0][1][3] = 1;
for(int i = 0;i <= n;i++){
for(int j = 0;j <= m;j++){
for(int k = 0;k <= kk;k++){
if((i == 0 && j == 0) || (j == 0 && k == 0) || (i == 0 && k == 0)) continue ;
if(i) dp[i][j][k][1] = (dp[i - 1][j][k][2] + dp[i - 1][j][k][3]) % M;
if(j) dp[i][j][k][2] = (dp[i][j - 1][k][1] + dp[i][j - 1][k][3]) % M;
if(k) dp[i][j][k][3] = (dp[i][j][k - 1][1] + dp[i][j][k - 1][2]) % M;
}
}
}
cout<<(dp[n][m][kk][1] + dp[n][m][kk][2] + dp[n][m][kk][3]) % M<<endl;
}