论BSGS的正确写法
查看原帖
论BSGS的正确写法
125454
CLCA_楼主2020/9/1 17:25

并不需要快速幂,在板子里对效率影响不大,但这道题因为龟速乘会TLE。但找了网上的写法基本都是带快速幂的 /yun

ll solve(){
	h.clear();
	int t=sqrt(p)+1;ll k=1;
	rep(i,0,t-1)h[mul(k,b)]=i,k=mul(k,a);
	a=k;k=1;
	rep(i,0,t){
		if(h.count(k)){
			int j=h[k];
			if(i*t>=j)return i*t-j;
		}
		k=mul(k,a);
	}
	return -1;
}
2020/9/1 17:25
加载中...