专栏文章

题解:CF1371E2 Asterism (Hard Version)

CF1371E2题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqtyxor
此快照首次捕获于
2025/12/04 10:42
3 个月前
此快照最后确认于
2025/12/04 10:42
3 个月前
查看原文
M=maxaiM=\max{a_i},那么满足条件的 xx 一定位于 [Mn,M][M−n,M] 之间,这是因为在这个区间之外的 f(x)f(x) 只可能为 00n!n!
接下来计算 f(x)f(x)
注意到,第 ii 次可以打的敌人第 i+1i+1 次也可以打,那么记 i\le i 个糖果的敌人数量为 tit_i,第 jj 次能打的敌人的数量恰好为 tx+j1j+1=x(x+j1tx+j1)t_{x+j−1}−j+1=x−(x+j−1−t_{x+j−1})
总共的方案数就是这些数量乘起来,所以判断是否能被 pp 整除可以通过对每个数量判断。 
gi=itig_i=i−t_i,那么 f(x)=i=xx+n1(xgi)f(x)=\prod_{i=x}^{x+n−1}(x−g_i),若 xx 与某个 gig_i 在模 pp 意义下同余,那么 pf(x)p\mid f(x)
那么我们可以开一个桶记录在区间 [x,x+n1][x,x+n−1]gimodpg_i \bmod p 的值。从小往大枚举 xx,并且更新桶即可。
时间复杂度 O(n)O(n)

评论

0 条评论,欢迎与作者交流。

正在加载评论...