2020/7/13
一开始以为只要开出积分以及预处理阶乘计算组合数,O(n)计算结果即可,后面发现丧心病狂要O(1)才能过。没办法,打表上OEIS找公式——居然还真找到了。。
这里放出真正的过程:
三角换元大法nb!然鹅我不会,高数菜鸡正是在下了。好像是“Wallis’ integrals”。
得到公式,代码自然。。。简单的逆元即可:
#include<bits/stdc++.h>
using namespace std;
#define M 2000010
#define mod 998244353
int n,f[M],g[M],inv[M];
int main(){
f[1]=g[1]=inv[1]=1;
for(int i=2;i<2000005;i++){
f[i]=1ll*f[i-1]*i%mod;
inv[i]=1ll*(mod-mod/i)*inv[mod%i]%mod;
g[i]=1ll*g[i-1]*inv[i]%mod;
}
while(~scanf("%d",&n))printf("%d\n",1ll*g[2*n+1]*f[n]%mod*f[n]%mod);
return 0;
}