x^y T次询问算法
  • 板块学术版
  • 楼主_8008008
  • 当前回复8
  • 已保存回复8
  • 发布时间2023/12/24 17:11
  • 上次更新2023/12/24 19:32:45
查看原帖
x^y T次询问算法
803885
_8008008楼主2023/12/24 17:11

x,y,n,mx,y,n,m 均为整数
给出最大底数 n(n>0)n(n>0) 和最大指数 m(m>0)m(m>0) ,共有 TT 次询问,每次询问给出两个数,x,y(1≤x≤n,1≤y≤m)x,y(1 \le x\le n,1\le y\le m),求 xyx^y。
容易想到的就是快速幂,时间复杂度应为 Txlog⁡yT x\log y。

我还想到一种方法就是预处理 22 的 11 到 log⁡nm\log nm 次幂,对于 xyx^y 进行二进制分解,分解出来的二进制数约为 log⁡xy\log x^y 位然后计算
ans=2i×(第1位是否为0)+2i−1×(第2位是否为0)+...+20×(第i位是否为0)ans=2^i\times(第1位是否为0)+2^{i-1}\times(第2位是否为0)+...+2^0\times(第i位是否为0) 时间复杂度为 log⁡nm+∑i=1Tlog⁡xiyi\log nm+\sum^T_{i=1}\log x_i^{y_i}
有没有更快的算法

2023/12/24 17:11
加载中...