LOJ#162 【模板】光速幂

题意

这可能也是一道模板题。

给出正整数 xn 个正整数 ai,求 xaimodp

对于 100% 的数据,1n5×106,1x,ai<p,p=998244352

题解

O(n)  O( 1 ) 光速幂板子。适用于固定底数、较多询问的快速幂查询。支持非质数模数

具体是像 BSGS 算法那样,预处理出 x1,x2,...xn,随后预处理出 xn,x2n,...xn

然后就赢麻了。对于每个查询的指数 y ,答案即为 x(y÷n)·n ·xy modn。这俩上面都是预处理好的。

代码

ll x,n;
const ll mod=998244352;
ll s[32000],b[32000];
void solve(){
	x=R,n=R;
	ll block=sqrt(mod);
	ll bas=1;
	b[0]=s[0]=bas;
	for(ll i=1;i<=block;i++){
		bas=bas*x%mod;
		s[i]=bas;
	}
	x=bas,bas=1;
	for(ll i=1;i<=block;i++){
		bas=bas*x%mod;
		b[i]=bas;
	}
	while(n--){
		ll a=R;
		wk(b[a/block]*s[a%block]%mod);
	}
	return ;
}
posted @   Rnfmabj  阅读(134)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示