快速幂加龟速乘板子

代码

#include<bits/stdc++.h>

using namespace std;
#define ll long long
ll mod;
ll ksc(ll x,ll k)
{
	ll  res=0;
	while(k)
	{
		if(k&1) res=(res+x)%mod;
		k>>=1;
		x=(x+x)%mod; 
	 } 
	 return res;
}
ll qm(ll  x,ll k)
{
	ll res=1;
	while(k)
	{
		if(k&1)  res=ksc(res,x);
		k>>=1;
		x=ksc(x,x);
	 }  
	 return (ll)res;
}
int main()
{
	ll a,b;
	int t;
	cin>>t;
	while(t--)
	{
		cin>>a>>b>>mod;
		cout<<qm(a,b)<<endl;
	}
	
	return 0;
 } 

板子题

例题

posted @ 2022-08-28 08:43  翔村亲亲鸟  阅读(14)  评论(0编辑  收藏  举报