题意
∫ 0 1 ( x − x 2 ) n d x \int_{0}^1 (x - x^2)^n \mathrm{d} x ∫01(x−x2)ndx mod 998244353
- 范围:1≤n≤106
- 链接:Easy Integration
- 输入
1
2
3
- 输出
166374059
432572553
591816295
解题思路
- 用分部积分法求定积分
∫ 0 1 ( x − x 2 ) n d x \int_{0}^1 (x - x^2)^n \mathrm{d} x ∫01(x−x2)ndx=(n!)2/(2n+1)! - 快速幂
- 逆元、费马小定理
看到整数用表示分数就要想到!!!
- 逆元:一个数的倒数 如a的逆元为a-1
- 费马小定理推论:a与p互质,则a的逆元为ap-2
代码
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef long long ll;
int const mod=998244353;
int const N=2e6+10;
int a[N];
int power(int a,int b)
{
int res=1;
while(b)
{
if(b&1)res=1ll*res*a%mod;
a=1ll*a*a%mod;b>>=1;
}
return res%mod;
}
int main()
{
int n;
a[0]=1;
for(int i=1;i<=N;i++)a[i]=1ll*a[i-1]*i%mod;
while(~scanf("%d",&n))
printf("%d\n",((1ll*a[n]*a[n]%mod)*power(a[2*n+1],mod-2))%mod);
return 0;
}