WA5分求助
查看原帖
WA5分求助
200044
JS_TZ_ZHR楼主2020/7/31 21:59

RT

#include <bits/stdc++.h>
#define int long long
#define mod 10007
using namespace std;
int n,p[100005]= {1},ans,l[1000005];
int inv(int num) {
	int x=mod-2,res=1;
	while(x) {
		if(x&1)res=(res*num)%mod;
		num=(num*num)%mod;
		x>>=1;
	}
	return res;
}
int C(int x,int y) {
	if(y>x)return 0;
	return ((((p[x]*inv(p[y]))%mod)*inv(p[x-y])))%mod;
}
int lucas(int x,int y) {
	if(!y)return 1;
	return (C(x%mod,y%mod)*lucas(x/mod,y/mod))%mod;
}
signed main() {
	scanf("%lld",&n);
	for(int i=1; i<=mod; i++)p[i]=(p[i-1]*i)%mod;
	for(int i=0; i<n; i++)l[i]=lucas(n-1,i)%mod;
	sort(l,l+n);
	for(int i=0; i<n; i++)ans=(ans+(i+1)*l[i])%mod;
	printf("%lld\n",ans);
	return 0;
}
2020/7/31 21:59
加载中...