2020 牛客多校第一場 J.Easy Integration
阿新 • • 發佈:2020-08-09
題目連結
題意:
給出n,求 \(\int_0^1(x-x^2)^ndx\) 取模998244353。
題解:
當時比賽的的時候是用分部積分慢慢算的,賽後才知道是尤拉積分的運用,結果就是求\(\frac{(n!)^2}{(2n+1)!}\)。
1 #include <bits/stdc++.h> 2 3 using namespace std; 4 #define sint(a) scanf("%d",&a) 5 #define sint2(a,b) scanf("%d %d",&a,&b) 6 #define sll(a) scanf("%lld",&a) 7#define sll2(a,b) scanf("%lld %lld",&a,&b) 8 #define mem(a,i) memset(a,i,sizeof(a)) 9 #define pb push_back 10 #define ll long long 11 12 const int maxn=2e6+10; 13 const ll mod=998244353; 14 const double pi=acos(-1); 15 16 ll qpow(ll a,ll n) 17 { 18 ll b=1; 19 while(n) 20 { 21 if(n&1) 22 b=b*a%mod; 23 a=a*a%mod; 24 n>>=1; 25 } 26 return b; 27 } 28 ll ji[maxn]; 29 int main() 30 { 31 ll n; 32 ji[0]=1; 33 for(int i=1;i<maxn;i++) 34 ji[i]=ji[i-1]*i%mod; 35 while(~sll(n)) 36 { 37 if(n==1) 38 printf("%lld\n",qpow(6,mod-2)); 39 else 40 { 41 ll s=ji[n]*ji[n]%mod; 42 printf("%lld\n",qpow(ji[2*n+1],mod-2)*s%mod); 43 } 44 } 45 return 0; 46 }