2020暑假牛客多校第一场 j:Easy Integration

题意:给你一个积分公式,给你一个n,问积分公式的值取模后的结果
思路:个屁的思路,直接结论这积分公式(沃利斯积分)值的结论直接就是(n!)^2/(2n+1)!,求个阶乘,用费马小定理给1/(2n+1)!取个模就完了。(比赛的时候一直往杨辉三角上套,结果是个结论题?)
ac代码:

#include 
#include 
#include 
#include 
#include 
using namespace std;
#define int long long
const int mod = 998244353;
const int MAXN = 2e6 + 5;
int cnt[MAXN];
int ksm(int a, int b) {
	if (b == 0) return 1;
	if (b % 2 != 0) {
		return a * ksm(a, b - 1) % mod;
	}
	if (b % 2 == 0) {
		int temp = ksm(a, b / 2) % mod;
		return temp * temp % mod;
	}
}
signed main() {
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	int t; 
	cnt[0] = 1;
	for (int i = 1; i < MAXN; i++) {//阶乘打表
		cnt[i] = cnt[i - 1] * i % mod;
	}
	while (cin >> t) {
		cout << cnt[t] * cnt[t] % mod * ksm(cnt[2 * t + 1], mod - 2) % mod << endl;
	}
}

你可能感兴趣的:(2020暑假牛客多校第一场 j:Easy Integration)