补充:n<=10^6
本题完全就是用个组合数的模板在百度条公式就可以做出来,比第一题还要水,可是我居然忘记了给结果取模。
就一直wa,最后知道真相的我眼泪流下来。
公式:[C(n,0)]^2+.....+[C(n,n)^2]=C(2n,n)
#include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> #include <vector> #include <map> #define ll long long #define M 998244353 #define x 2000001 using namespace std; ll fac[x]={1,1},inv[x]={1,1},f[x]={1,1}; ll C(ll a,ll b){ if(b>a)return 0; return fac[a]*inv[b]%M*inv[a-b]%M; } void init(){ for(int i=2;i<x;i++){ fac[i]=fac[i-1]*i%M; f[i]=(M-M/i)*f[M%i]%M; inv[i]=inv[i-1]*f[i]%M; } } int main() { int n; ll ans=0; scanf("%d",&n); init(); for(int i=1;i<=n;i++){ ans=ans+C(2*i,i)%M; } cout <<ans%M<<endl; return 0; }