[JZOJ5214]【HEOI、SXOI2017】相逢是问候(口胡)

来源:互联网 发布:org.apache.thrift 编辑:程序博客网 时间:2024/05/17 01:00

Description

这里写图片描述
这里写图片描述

Solution

指数是不能取模的,这很尴尬

但是有欧拉定理
gcd(c,p)=1,那么cxcxmodφ(p)modp

因为根据欧拉定理cφ(p)1modp

但是此处c,p并不一定互质

有欧拉定理的扩展(为什么还有这种操作。。。。)
cxc(xmodφ(p))+φ(p)

可以证明,一个数不断在外面套个φ,最多logp次就会变成1

那么对于修改操作,可以证明,对于任何一个初始的Ai,经过logp次操作,就一定会变成一个只与c有关的常数
也就是说ccccc...a[i],经过若干层会变成与c有关而与a无关的常数

设当前是cq
同时也是c(qmodφ(p))+φ(p)

继续向上一层推
q=cq1

但是q的模数是φ(p)
相应的
qc(q1modφ(φ(p)))+φ(φ(p))
叠了若干个φ,最终模数会变成1,(q1modφ(φ(...φ(p)...)))=0,φ(φ(...φ(p)...))=1

指数也会是1

再怎么操作,最终的指数都是1
所以一定是常数,并且叠的层数最多logp

可以线段树维护每个做了几层,区间求和,若区间操作次数最少的都变成常数了,那就不用做了,否则暴力修改每个叶子节点

复杂度mlognlog2p
向上递归一个,快速幂一个。

显然会T

因为底数相同,可以预处理快速幂
具体怎么弄我也不会(好吧我太弱了。。)

Code

因为是口胡,所以没有题解!

原创粉丝点击