| 比赛 |
寒假集训2 |
评测结果 |
AATTT |
| 题目名称 |
UNO |
最终得分 |
40 |
| 用户昵称 |
终焉折枝 |
运行时间 |
3.332 s |
| 代码语言 |
C++ |
内存使用 |
16.82 MiB |
| 提交时间 |
2026-02-25 10:57:30 |
显示代码纯文本
#include<iostream>
using namespace std;
#define ll long long
const int MOD = 998244353;
ll dp[4][105][105][105];
int N, M, K;
int main(){
freopen("UNO.in", "r", stdin);
freopen("UNO.out", "w", stdout);
cin >> N >> M >> K;
dp[1][1][0][0] = 1;
dp[2][0][1][0] = 1;
dp[3][0][0][1] = 1;
for(int i = 0;i <= N;i ++){
for(int j = 0;j <= M;j ++){
for(int k = 0;k <= K;k ++){
if(i + j + k <= 1) continue;
if(i) (dp[1][i][j][k] += (dp[2][i - 1][j][k] + dp[3][i - 1][j][k])) %= MOD;
if(j) (dp[2][i][j][k] += (dp[1][i][j - 1][k] + dp[3][i][j - 1][k])) %= MOD;
if(k) (dp[3][i][j][k] += (dp[1][i][j][k - 1] + dp[2][i][j][k - 1])) %= MOD;
}
}
}
cout << (dp[1][N][M][K] + dp[2][N][M][K] + dp[3][N][M][K]) % MOD << '\n';
return 0;
}