破防中,捞
查看原帖
破防中,捞
378996
UncleSam_Died楼主2023/12/24 21:48

rt,有没有大佬知道这时什么问题,本地数据点都能过,但是交上去WA了,本地预处理跑了 600ms,但是交上去只跑了 40ms,估计是这一部分出的问题,但是不知道具体错在哪里了。

#include<math.h>
#include<time.h>
#include<stdio.h>
#include<algorithm>
#define int long long
#define M 10000000
inline bool Get(int x){
	while(x){
		if(x%10==7)
			return true;
		x=x/10;
	}
}
int vis[M+100],p[M+100],cnt,pos[M+100];
inline void init(){
	for(register int i=1;i<=M;++i){
		if(vis[i]) continue;
		if(i%7==0||Get(i)){
			for(register int j=1;j*i<=M;++j){
				if(vis[j*i]&&i%7==0)
					break;
				vis[j*i]=1;
			} continue;
		}
		p[++cnt]=i;
		pos[i]=cnt;
	}
}int x;
inline void work(){
	scanf("%lld",&x);
	if(vis[x]){
		puts("-1");
		return;
	}else printf("%lld\n",p[pos[x]+1]);
}signed main(){
	srand(114514);
	srand(rand());
	srand(time(0));
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	init();
	int T;scanf("%lld",&T);
	while(T--) work();return 0;
}
2023/12/24 21:48
加载中...