求调(WA)
查看原帖
求调(WA)
555065
ChrysanthBlossom楼主2023/8/15 22:15

WA on #6

感觉自己的思路应该是和题解里面差不多的。

样例和前五个点都过了,应该是小错误。

#include<bits/stdc++.h> 
#define ri register int
#define ll long long
using namespace std;
const int maxn=2e6+5,mod=998244853;
ll jc[maxn];
int n,m;
ll qpow(ll a,int b,ll p){
	ll ans=1;
	while(b){
		if(b&1)ans=ans*a%p;
		a=a*a%p;
		b>>=1;
	}return ans;
}
ll inv[maxn];
ll C(int a,int b){
	if(a<0||b>a||b<0)return 0;
	return jc[a]*inv[b]%mod*inv[a-b]%mod;
}
ll a[maxn],b[maxn];
signed main(){
	ios::sync_with_stdio(0);
	jc[0]=1;
	for(ri i=1;i<=2e6;i++)jc[i]=jc[i-1]*i%mod;
	inv[int(2e6)]=qpow(jc[int(2e6)],mod-2,mod);
	for(ri i=2e6;i;i--){
		inv[i-1]=inv[i]*i%mod;
	}
	cin>>n>>m;
	for(ri i=0;i<=n;i++){
		if(i<n-m)a[i]=0;
		else a[i]=(C(n+m,n)-C(n+m,i+1+n)+mod)%mod;
//		cout<<a[i]<<' ';
	}
	for(ri i=1;i<=n;i++)b[i]=(a[i]-a[i-1]+mod)%mod;
//	for(ri i=1;i<=n;i++)cout<<i<<' '<<b[i]<<endl;
	ll ans=0;
	for(ri i=1;i<=n;i++){
		ans=(ans+b[i]*i%mod)%mod;
	}cout<<ans;
	return 0;
}
2023/8/15 22:15
加载中...