比赛 寒假集训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;
}