ciallo
2026-04-08 22:02:20
发布于:江苏
8阅读
0回复
0点赞
以下为代码:
#include <iostream>
using namespace std;
const int MOD = 998244353;
const int MAXN = 505;
// 预处理组合数数组
long long C[MAXN][MAXN];
// 预处理函数:提前计算所有组合数
void init() {
// 边界条件 C(n,0) = 1
for (int i = 0; i < MAXN; ++i) {
C[i][0] = 1;
C[i][i] = 1; // C(n,n) = 1
}
// 递推计算组合数
for (int i = 2; i < MAXN; ++i) {
for (int j = 1; j < i; ++j) {
C[i][j] = (C[i-1][j-1] + C[i-1][j]) % MOD;
}
}
}
int main() {
init(); // 先预处理
int T;
cin >> T;
while (T--) {
int n, k;
cin >> n >> k;
cout << C[n][k] << endl;
}
return 0;
}
自己看注释
欢迎加入团队
这里空空如也





有帮助,赞一个