萌新求助
查看原帖
萌新求助
116015
bellmanford楼主2020/10/24 20:03

这题如果用 BSGSBSGS 的话储存那边如果用 HashHash 要怎么写啊,我总是 WA0

void solve(){
	int p=read(),a=read(),b=read(),mi=a;
	int kc=sqrt(p);if(kc*kc!=p) kc++;
	for(int i=1;i<=kc;i++,i<=kc?(mi*=a)%=p:0) Hash[Get_Hash(mi*b%p)]=i;
	for(int i=1,A=mi;i<=kc;i++,(A*=mi)%=p){
		int get=Hash[Get_Hash(A)];
		if(get) return (void)(printf("%lld\n",i*kc-get));
	}
	printf("no solution\n");
}
2020/10/24 20:03
加载中...