指数循环节题集

指数循环节题集

有个公式

x >= Phi(C), A^x = A ^ (x%Phi(C) + Phi(C)) (mod C)

不会证

1.hdu 3221 Brute-force Algorithm

题目链接

点击打开链接

题意:
Function Find(int n,function func)
  If n=1
  For i=1 to a do func()
  Elseif n=2
  For i=1 to b do func()
  Else Find(n-1,Find(n-2,func))
Function Main
  Find(n,funny)
给出n,a,b,p,问funny会执行多少次,结果模p。
限制:1 <= n <= 1e9,1 <= p <= 1e6,0 <= a,b < 1e6
思路:找规律,指数循环节
令f(n)为funny执行多少次
会发现 f(n)=f(n-1)*f(n-2)
然后:
f(1)=(a^1)*(b^0)
f(2)=(a^0)*(b^1)
然后:
会发现a和b的指数成斐波那契数一样增长,可以用矩阵快速幂解决指数问题
但指数太大,所以要用到指数循环节
公式x >= Phi(C), A^x = A ^ (x%Phi(C) + Phi(C)) (mod C)


2.hdu 5152  A Strange Problem

题目链接

点击打开链接

题意:给你一个长度为N的序列,序列为A1,A2,A3,...AN,然后有M个操作,每个操作为以下三种操作的其中一个:
1. 输出操作。给你l,r,输出∑i=(l,r) Ai的值。
2. 修改操作。给你x,把Ax修改为2Ax
3. 加法操作。给你l,r,x,给Ai(l≤i≤r)加上x
由于输出操作的结果可能很大,输出结果对2333333取模。
限制:0 <= n,m <= 50000 0 <= ai <= 1e9
思路:首先是,这道题主要考操作2,公式x >= Phi(C), A^x = A ^ (x%Phi(C) + Phi(C)) (mod C)
然后,值得注意是,这道题的Phi(c),是一层套一层的。
最后,题目给出2333333,所以Phi(c),最多只有18层。

题解链接

点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值