微积分 2020牛客暑期多校训练营(第二场)J Easy Integration
标签(空格分隔): 微积分
微积分
用Beta函数很好求。
一开始用分步积分来做的,但是做到一半没有继续做下去,属实不应该。
用三角函数和分部积分也可以解
推导过程可参考https://blog.csdn.net/weixin_45539557/article/details/107305843
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll maxn=2e6+10;
const ll MOD=998244353;
ll fac[maxn];
ll q_pow(ll x,ll n){
ll ans=1;
while(n){
if(n&1){
ans=ans*x%MOD;
}
x=x*x%MOD;
n>>=1;
}
return ans;
}
ll inv(ll x){
return q_pow(x,MOD-2);
}
int main(){
ll n;
fac[0]=1;
for(ll i=1;i<maxn;i++){
fac[i]=fac[i-1]*i%MOD;
}
while(~scanf("%lld",&n)){
printf("%lld\n",(fac[n]*fac[n]%MOD)*inv(fac[n*2+1])%MOD);
}
}