✨ 大佬吃水果
⭐ 初始化前置项
⭐ 记得取 MOD
⭐ 开 long 防止爆 int
import java.util.*;
public class Main
{
static int N = 2010, n, m, k;
static int mod = 998244353;
static long[][] f = new long[N][N];
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
k = sc.nextInt();
// 初始化
f[1][0] = m;
// 循环里边特判 j == 0 就不用初始化 j == 0 的所有情况
// for (int i = 0; i <= n; i++)
// {
// f[i][0] = m;
// }
for (int i = 2; i <= n; i++)
for (int j = 0; j <= k; j++)
{
f[i][j] = f[i-1][j]; // f[3][0] = f[2][0] = f[1][0] = m; 特殊处理 j == 0 的情况,防止状态计算时越界
if(j != 0)
f[i][j] = (f[i - 1][j] + f[i - 1][j - 1] * (m - 1)) % mod;
}
System.out.println(f[n][k]);
}
}