WA60pts求助
查看原帖
WA60pts求助
1305692
xiangixuan楼主2024/12/7 21:07

lucas写的,为什么 #2#4#7#8不对?

#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
int power(int x, int b, int p) {
	int ans=1;
	for (; b; b>>=1, x=x*x%p)
		if (b&1) ans=ans*x%p;
	return ans;
}
int C(int n, int m, int p) {
	if(n<m) return 0;
    if (m>n-m) m=n-m;
    int a=1, b=1;
    for (int i = 1; i <= m; i++) {
    	a=(a*(n - m + i))%p;
    	b=(b*i)%p;
	}
    return (a*power(b, p-2, p))%p;
}
int lucas(int m, int n, int p) {
	if (!m) return 1;
	return lucas(n/p, m/p, p)*C(n%p, m%p, p)%p;
}
int fac(int n, int p) {
	int ans=1;
	for (int i=n; i>=2; --i)
		ans=ans*i%p;
	return ans%p;
}
int a, b, c, d, k, p=1e5+3, ans;
signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	cin >> a >> b >> c >> d >> k;
	for (int i=0; i<=k; ++i)
		ans=(ans+lucas(i, a, p)*lucas(i, b+d-(k-i), p)*fac(i, p)*lucas(k-i, c, p)*lucas(k-i, d, p)*fac(k-i, p))%p;
	cout << ans << '\n';
	return 0;
}
2024/12/7 21:07
加载中...