2020牛客多校第一场J题Easy Integration(逆元+打表)

题解: 

不会推!!

正解 手算出第4个oeis规律!

  打表线性筛n!的逆元。

#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
const int maxn = 2e6 + 7;
typedef long long ll;
const ll mod=998244353;
ll invi[maxn],f[maxn],inv[maxn];


void init(){
    invi[0]=invi[1]=1;
    f[0]=1;
    inv[0] = 1;
    for(int i=2;i<maxn;i++){
        invi[i] = invi[mod % i] * (ll)(mod - mod / i) % mod;
    }
    for(int i=1;i<maxn;i++){
        f[i]=i*f[i-1]%mod;
        inv[i] = invi[i] * inv[i - 1] % mod;
    }
    
}
int main(){
    int n;
    init();
    while(~scanf("%d",&n)){
        ll ans=f[n]*f[n] %mod *inv[2*n+1]%mod;
        printf("%lld\n",ans);
        
    }
    return 0;
}
View Code

 

posted @ 2020-07-31 23:25  杰瑞与汤姆  阅读(156)  评论(0编辑  收藏  举报