1. 程式人生 > 實用技巧 >2020 牛客多校第一場 J.Easy Integration

2020 牛客多校第一場 J.Easy Integration

題目連結

題意:

  給出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 }