看上去挺吓人的复杂的求和公式,未知数,大数取余,阶乘幂次方的
但实际分析下来就是一个数学推导,代码也很简单
上次广工校赛就被坑了一次,长记性了…
#include <bits/stdc++.h>
using namespace std;
long long md = 998244353;
long long v[1000010];
long long query(long long w, long long x) {
return v[x] * w % md;
}
void init() {
v[0] = 1; v[1] = 1;
for(int i = 2; i < 1000010; i++) {
v[i] = v[i - 1] * (i * 2 - 1) % md;
}
}
int main() {
init();
long long w, q; cin >> w >> q;
for(int i = 0; i < q; i++) {
long long x; cin >> x;
printf("%lld\n", query(w, x));
}
return 0;
}