牛客多校第一场 J-Easy Integration(定积分、逆元)

目录

  • 题意
  • 解题思路
  • 代码

题意

∫ 0 1 ( x − x 2 ) n d x \int_{0}^1 (x - x^2)^n \mathrm{d} x 01(xx2)ndx mod 998244353

  • 范围:1≤n≤106
  • 链接:Easy Integration
  • 输入

1
2
3

  • 输出

166374059
432572553
591816295

解题思路

  1. 用分部积分法求定积分
    牛客多校第一场 J-Easy Integration(定积分、逆元)_第1张图片
    ∫ 0 1 ( x − x 2 ) n d x \int_{0}^1 (x - x^2)^n \mathrm{d} x 01(xx2)ndx=(n!)2/(2n+1)!
  2. 快速幂
  3. 逆元、费马小定理
    看到整数用表示分数就要想到!!!
  • 逆元:一个数的倒数 如a的逆元为a-1
  • 费马小定理推论:a与p互质,则a的逆元为ap-2

代码

#include
#include
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;
}

你可能感兴趣的:(#,7.12第一场,2020牛客多校赛)