LG P3747 [六省联考2017]相逢是问候(欧拉定理+(暴力)线段树+光速幂)

130 篇文章 1 订阅
92 篇文章 0 订阅

题目
这题怎么出的这么好啊。
发现这个操作很不常规,那么就一定会有一些很不常规的性质。
c i ≡ c i m o d    φ ( p ) ( m o d p ) c^i \equiv c^{i\mod \varphi(p)} \pmod p cicimodφ(p)(modp)
c c i ≡ c ( c i m o d    φ ( p ) ) ≡ c i m o d    φ ( φ ( p ) ) m o d    φ ( p ) ( m o d p ) c^{c^i} \equiv c^{(c^i\mod \varphi(p))\equiv c^{i\mod \varphi(\varphi(p))}\mod \varphi(p)} \pmod p ccic(cimodφ(p))cimodφ(φ(p))modφ(p)(modp)
你们应该知道我要表达什么意思的。
所以我们需要维护各层 c . . . m o d    φ k ( p ) c^{...}\mod \varphi^k(p) c...modφk(p)
可以发现 φ O ( log ⁡ p ) ( p ) = 1 \varphi^{O(\log p)}(p) = 1 φO(logp)(p)=1
然后再怎么加 c . . . c^{...} c...值都不会改变了。
然后就是一个暴力修改线段树+维护区间是否已全被修改。
每个点被修改 O ( log ⁡ n ) O(\log n) O(logn)次,每次消耗 O ( log ⁡ n ) O(\log n) O(logn)次的时间来爬。
每次修改是 O ( log ⁡ 2 n ) O(\log^2n) O(log2n)的快速幂套 φ \varphi φ递归。
然后我们把快速幂用光速幂替代即可。

但是发现每次修改的时候因为模数不一定互质,
需要扩展欧拉定理:
a b ≡ a b , w h e r e   b &lt; φ ( m )   o r   a b m o d &ThinSpace;&ThinSpace; φ ( m ) + φ ( m ) , w h e r e   b &gt; = φ ( m ) a^b\equiv a^b,where\ b&lt;\varphi(m) \ or \ a^{b\mod \varphi(m)+\varphi(m)},where\ b&gt;= \varphi(m) abab,where b<φ(m) or abmodφ(m)+φ(m),where b>=φ(m)

写起来应该比较恶心吧。
退役前综合征:不想写代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值