CSL 的神奇序列

在这里插入图片描述

看上去挺吓人的复杂的求和公式,未知数,大数取余,阶乘幂次方的

但实际分析下来就是一个数学推导,代码也很简单

上次广工校赛就被坑了一次,长记性了…

#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;
}

猜你喜欢

转载自blog.csdn.net/weixin_43870114/article/details/89061908