这个递推求逆元有什么问题吗
查看原帖
这个递推求逆元有什么问题吗
1114867
1nes楼主2024/8/12 16:12
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 5e6 + 3;
const int mod = 998244353;
int ans;
int n , m , t , maxn;

int infac[N] , fac[N] , inv[N];
void init(){
	inv[1] = 1;
	for(int i = 2 ; i <= maxn ; i++){
		inv[i] = inv[mod % i] * (mod - mod / i) % mod;
	}
	fac[0] = 1;
	for(int i = 1 ; i <= maxn ; i++){
		fac[i] = fac[i - 1] * i % mod;
	}
	for(int i = 1 ; i <= maxn ; i++){
		infac[i] = infac[i - 1] * inv[i] % mod;
	}
}
int C(int x , int y){
	int res = 1;
	res = res * fac[x] * infac[y] % mod * infac[x - y] % mod;
	return res;
}
signed main(){
	ios::sync_with_stdio(0) , cin.tie(0) , cout.tie(0);
	cin >> t >> maxn;
	init();
	while(t--){
		cin >> n >> m;
		ans = ans xor C(n , m);
	}
	cout << ans;
	return 0;
}
2024/8/12 16:12
加载中...