社区讨论
建议加强数据
P7960[NOIP2021] 报数参与者 5已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lobagnus
- 此快照首次捕获于
- 2023/10/29 17:48 2 年前
- 此快照最后确认于
- 2023/11/03 23:45 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
const int maxn=10001000;
int MAX;
int num[1000000];
int T,tot;
bool no[maxn];
int query[200010];
bool p(int x){
int a=0;
while(x){
a=x%10;
if(a==7) return 1;
x/=10;
}
return 0;
}
void sf(int x){
for(int i=1;i<=x;i++){
if(no[i]==1) continue;
if(!no[i]){
if(p(i)){
no[i]=1;
for(int j=i+i;j<=x;j+=i){
no[j]=1;
}
}
else num[++tot]=i;
}
}
}
int main(){
// freopen("number.in","r",stdin);
// freopen("number.out","w",stdout);
scanf("%d",&T);
//for(int i=1;i<=100;i++) cout<<num[i]<<"\n";
for(int i=1;i<=T;i++){
scanf("%d",&query[i]);
if(MAX<query[i]) MAX=query[i];
}
sf(MAX+500);
for(int i=1;i<=T;i++){
if(no[query[i]]) printf("-1\n");
else printf("%d\n",num[upper_bound(num+1,num+tot+1,query[i])-num]);
}
return 0;
}
这个程序在洛谷上AC ,
399ms,14.61M
但是对以下问题输出错误
number.in
CPP1
6999998
number.ans:
CPP8000000
number.out:
CPP0
请求加强数据
建议加入测试点:
number.in:
CPP200000
6999998
6999998
6999998
.
.
.
number.ans:
CPP8000000
8000000
.
.
.
回复
共 5 条回复,欢迎继续交流。
正在加载回复...