快速幂 & 光速幂 科技

快速幂 & 光速幂 科技

快速幂

单次查询复杂度 O(logn) 不需要预处理,不多说了

loga 计算 xa:

const int mod=998244353;
il int fast_pow(int x,int a){
int ans=1;
while(ans){
if(a&1)ans=(1ll*ans*x)%mod;
x=(1ll*x*x)%mod;
a>>=1;
}
return ans;
}

光速幂

预处理复杂度 O(n),单次查询复杂度 O(1)

我们预处理:

  • f1(i)=xiin
  • f2(i)=xinin

可以得到

xk=xkn×n+k%n=(xkn×n)×(xk%n)=f2[k/n]×f1[k%n]

const int N=32000;//sqrt(1e9)
const int mod=998244353;
int f1[N+10],f2[N+10];
int light_pow(int x){
return (1ll*f1[x%N]*f2[x/N])%mod;
}
int main(){
int p;
cin>>p;
f1[0]=f2[0]=1;
for(int i=1;i<=N;i++) f1[i]=(1ll*p*f1[i-1])%mod;
for(int i=1;i<=N;i++) f2[i]=(1ll*f1[N]*f2[i-1])%mod;
}

没了。

posted @   CCComfy  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示