求条玄关
查看原帖
求条玄关
663199
Tachibana27楼主2024/9/26 11:53

rt 样例 2 未过

#include<bits/stdc++.h>
#define int long long
#define mod 1004535809
#define C(x,y) (fac[x]*qpow(fac[y]*fac[x-y]%mod,mod-2)%mod)
//#define C(x,y) (fac[x]*qpow(fac[y],mod-2)%mod*qpow(fac[x-y],mod-2)%mod)
int qpow(int b,int p){
	int ans=1;
//	int qwq=0;
	while(p){
		if(p bitand 1)
			ans=ans*b%mod;
		b=b*b%mod;
		p>>=1;
	}
	return ans;
}

int n;
int fac[1000086];
int f[1000086];
int g[1000086];
signed main(){
	std::cin>>n;
	fac[0]=1;
//	std::cout<<qpow(4,2)<<"\n";
	for(int i=1;i<=n;i++)
		fac[i]=fac[i-1]*i%mod;
//	std::cout<<C(4,2)<<"\n";
	for(int i=1;i<=n;i++)
		g[i]=(1LL<<C(i,2))%mod;
//	for(int i=1;i<=n;i++)
//		std::cout<<g[i]<<" ";
//	puts("");
	for(int i=1;i<=n;i++){
		f[i]=g[i];
		for(int j=1;j<i;j++){
			f[i]=((f[i]-(C(i-1,j-1)*f[j]%mod*g[i-j]%mod))%mod)%mod;
//			std::cout<<i-1<<" "<<j-1<<" "<<C(i-1,j-1)<<"\n";
		}	
	}
	std::cout<<f[n];
	return 0;
}
2024/9/26 11:53
加载中...