取模乘法

快速幂

在你保证两个数相乘不爆 long long 的情况下使用。

本质上是拆成二进制之后乘起来。

inline int qpow(int a,int b){
	int res=1;
	while(b){
		if(b&1) res=mul(res,a);
		a=mul(a,a);
		b>>=1;
	}
	return res;
}

龟速乘

保证不了就只能用把普通乘法改成龟速乘了,虽然慢,但是不会爆炸。

本质上也是拆成二进制,但之后是加起来。

inline ll mul(ll a,ll b){
	ll res=0;
	while(b){
		if(b&1) res=inc(res,a);
		a=inc(a,a);
		b>>=1;
	}
	return res;
}
posted @ 2022-02-24 10:04  cbdsopa  阅读(65)  评论(0)    收藏  举报