快速取模

现在这个版本有问题,代码来源也有问题!!!

代码从这里改过来的,优化了一下,这下能直接写 mod-2 和 %mod 了。如果侵权就删了。

struct Mod{
	long long m,p;
	Mod(long long pp){
		m=((__int128)1<<64)/pp;
		p=pp;
	}
	operator long long(){
		return this->p;
	}
}mod(在这里改模数);
template<class T>T operator % (T a,Mod b){
	return a-(((__int128)a*b.m)>>64)*b.p;
}

直接调用 %mod 即可,不用(%mod+mod)%mod。

posted @ 2025-02-04 11:19  123asdf123  阅读(18)  评论(0编辑  收藏  举报