关于本题拔山盖世算法的循环边界
查看原帖
关于本题拔山盖世算法的循环边界
189394
黑客楼主2020/8/12 20:56

这样过不了样例

for(int i=0;i<=m;i++)vis[qpow(g,i*m)]=i*m;
for(int i=0;i<=m;i++){
			ll t=(A*qpow(g,i))%mod;
			if(vis[t]&&vis[t]>=i){
				a=vis[t]-i;break;
			}
		}

这样90pts

for(int i=0;i<=m+1;i++)vis[qpow(g,i*m)]=i*m;
for(int i=0;i<=m+1;i++){
			ll t=(A*qpow(g,i))%mod;
			if(vis[t]&&vis[t]>=i){
				a=vis[t]-i;break;
			}
		}

这样能AC

for(int i=0;i<=m+2;i++)vis[qpow(g,i*m)]=i*m;
for(int i=0;i<=m+2;i++){
			ll t=(A*qpow(g,i))%mod;
			if(vis[t]&&vis[t]>=i){
				a=vis[t]-i;break;
			}
		}
2020/8/12 20:56
加载中...