在线求助:为啥WA?绷(样例过了)
查看原帖
在线求助:为啥WA?绷(样例过了)
972092
_name楼主2024/7/17 20:47
#include<bits/stdc++.h>
using namespace std;
const long long mod = 998244353;
long long mul[5000005];
long long sv[5000005],s[5000005],inv[5000005],t,n;
long long binpow(long long a, long long b) {
	a %= mod;
	long long res = 1;
	while (b > 0) {
		if (b & 1) res = res * a % mod;
		a = a * a % mod;
		b >>= 1;
	}
	return res;
}
long long x, y;
int main() {
	cin >> t >> n;
	mul[0] = 1;
	for (long long i = 1; i <= n; i++) {
		mul[i] = mul[i - 1] * i % mod;
	}
	long long p=mod;
	s[0] = 1;
	for (long long i = 1; i <= n; ++i) s[i] = s[i - 1] * mul[i] % p;
	sv[n] = binpow(s[n], p - 2);
	for (long long i = n; i >= 1; --i) sv[i - 1] = sv[i] * mul[i] % p;
	for (long long i = 1; i <= n; ++i) inv[i] = sv[i] * s[i - 1] % p;
	long long ans = 0;
	while(t--) {
		scanf("%lld%lld", &x, &y);
		ans ^= (x == y ? 1 : mul[x]*inv[y]% mod *inv[x-y] % mod);
	}
	cout <<ans;
	return 0;
}
2024/7/17 20:47
加载中...