2020牛客暑期多校训练营(第一场)J题
#include<cstdio> #include<cstdlib> #define SF scanf #define PF printf typedef long long ll; const int N=2000006; const int P=998244353; ll n,jc[N],dc[N]; ll fen(ll x){ //分数取模 fen(x)=(1/x)%P ll r=1,t=x,y=P-2; for(;y;y>>=1,t=t*t%P)if(y&1)r=r*t%P; return r%P; } int main(){ jc[1]=1; for(int i=2;i<=1000000;i++){ jc[i]=(jc[i-1]*(ll)i)%P; } dc[1]=1; for(int i=2;i<=2000001;i++){ dc[i]=(dc[i-1]* fen((ll)i))%P; } while(SF("%d",&n)!=EOF){ PF("%lld\n",jc[n]*jc[n]%P*dc[(n<<1)+1]%P); } return 0; }