B-求值2_Wannafly挑战赛17 (nowcoder.com)
题意:
思路:
Code:
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int mxn=2e6+10;
const int mxe=2e5+10;
const int Inf=0x3f3f3f3f;
const int mod=998244353;
int N;
int Fac[mxn],inv[mxn];
int ksm(int a,int b,int mod){
int res=1;
while(b){
if(b&1) res=(res*a)%mod;
a=(a*a)%mod;
b>>=1;
}
return res;
}
void F_init(){
Fac[1]=1;
for(int i=2;i<mxn;i++) Fac[i]=(Fac[i-1]*i)%mod;
inv[mxn-1]=ksm(Fac[mxn-1],mod-2,mod);
for(int i=mxn-2;i>=1;i--) inv[i]=(inv[i+1]*(i+1))%mod;
}
int C(int n,int m){
return Fac[n]*inv[m]%mod*inv[n-m]%mod;
}
void solve(){
cin>>N;
int ans=0;
for(int i=1;i<=N;i++){
ans+=C(2*i,i);
ans%=mod;
}
cout<<ans<<'\n';
}
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int __=1;//cin>>__;
F_init();
while(__--)solve();return 0;
}