求助CF E
  • 板块学术版
  • 楼主lzqy_
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/1/6 00:39
  • 上次更新2023/10/24 05:26:22
查看原帖
求助CF E
288716
lzqy_楼主2023/1/6 00:39

调了1h21min 乐死了

做法是容斥算出操作 0,1,2,30,1,2,3 次的排列数量。

sum0=1;
	sum1=(2ll*fac[2*n]-fac[n]-sum0+2ll*mod)%mod;
	sum2=(2ll*C(2*n,n)*fac[n]%mod*fac[2*n]%mod)%mod;
	for(int i=0;i<=n;i++)
		sum2=(sum2-1ll*fac[n]*fac[n]*fac[n]%mod*C(2*n-i,n)%mod+mod)%mod;
	sum2=(sum2-sum0-sum1+2ll*mod)%mod;
	sum3=(((ll)fac[3*n]-sum2-sum1-sum0)%mod+mod)%mod;
	printf("%lld\n",(0ll*sum0+1ll*sum1+2ll*sum2+3ll*sum3+4ll*sum4)%mod);

第二个样例比答案多 7272,求看式子有没有问题/kel

2023/1/6 00:39
加载中...