AFO了,来最后写一波题解。

T1 不算阴间,题意很直白,所以想先顺着题意打一波模拟。

算一下,发现 1e7 的 $O(nlog(n))$ 时间复杂度好像可以直接过( 实际上是$O(nloglog(n))$,更小 )。

所以手打了一个埃式筛,发现 1e7 的下一个就是 1e7+1。

至于求下一个,则在筛的时候顺便保存到数组里去。(当然,也可以分开求)

所以就先运行筛法,然后 $O(1)$ 出答案。

本机运行 0.6 秒,直接不管了,看下一题。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define fu(i,l,r) for(int i=l;i<=r;++i)
#define fd(i,l,r) for(int i=l;i>=r;--i)
#define po printf const int maxn=1e7+5;
const int INF=0x3f3f3f3f; int T,n,m; int nxt[maxn];
bool is7[maxn]; inline int read(){
int a=0; char x; int w=0;
x=getchar();
while(!isdigit(x)) {if(x=='-') w=1;x=getchar();}
while(isdigit(x)) {a=a*10+x-'0';x=getchar();}
return w?-a:a;} bool contain7(int x){
while(x){
if(x%10==7) return 1;
x/=10;
}
return 0;
}//直白的命名 void shai(int n){
int preI=0;
fu(i,1,n){
if(contain7(i)){
is7[i]=1;
for(int j=2;i*j<=n;++j){
is7[i*j]=1;
}
}else{
if(!is7[i]){
nxt[preI]=i;//维护下一个合法的数字
preI=i;
}
}
}
}//先进行埃筛,n log(n) void solve(){
cin>>T;
fu(i,1,T){
int x=read();
if(is7[x]){//O(1)求答案
po("-1\n");
}else{
po("%d\n",nxt[x]);
}
}
} signed main()
{
// freopen("number.in", "r",stdin);
// freopen("number.out","w",stdout);
int n=1e7+5;
shai(n);
solve();
return 0;
}

NOIP2021 T1 报数 题解的更多相关文章

  1. NOI Online #3 提高组 T1水壶 题解

    题目描述 有 n 个容量无穷大的水壶,它们从 1∼n 编号,初始时 i 号水壶中装有 Ai 单位的水. 你可以进行不超过 k 次操作,每次操作需要选择一个满足 1≤x≤n−1 的编号 x,然后把 x ...

  2. 模拟赛18 T1 施工 题解

    前言: 真的是不容易啊.这个题在考场上想到了最关键的性质,但是没写出来. 后来写出来,一直调,小错不断. 没想到改的最后一个错误是两个int 乘起来爆了int 其实最后我还是觉得复杂度很假.\(n^2 ...

  3. Yali7月集训Contest2 T1 Cube 题解

    题目链接: 连我们都只有纸质题目...话说雅礼集训都是这样的吗... 大意 0维基本图形是一个点 1维基本图形是一条线段 2维基本图形是一个正方形 3维基本图形是一个正方体 4维基本图形是... 求\ ...

  4. 上午小测1 T1 木板 题解

    前言: WTCL,居然折磨煎蛋的性质都忘记了,WTCL. 考场上想出来了正解,就差一点就能A掉,挺难受的. 要记住一个数n可能会有一个大于\(\sqrt{n}\)的质因子..我忘记把它加进去了.... ...

  5. 联赛膜你测试20 T1 Simple 题解 && NOIP2017 小凯的疑惑 题解(赛瓦维斯特定理)

    前言: 数学题,对于我这种菜B还是需要多磨啊 Simple 首先它问不是好数的数量,可以转化为用总数量减去是好数的数量. 求"好数"的数量: 由裴蜀定理得,如果某个数\(i\)不能 ...

  6. 「题解」「美团 CodeM 资格赛」跳格子

    目录 「题解」「美团 CodeM 资格赛」跳格子 题目描述 考场思路 思路分析及正解代码 「题解」「美团 CodeM 资格赛」跳格子 今天真的考自闭了... \(T1\) 花了 \(2h\) 都没有搞 ...

  7. CCF-CSP认证 C++题解目录

    持续更新中,记录刷题过程并分享一下小小的心得总结. 试题编号 试题名称 标签 202006-1 线性分类器 | 题解 线性规划 202006-2 稀疏向量| 题解 归并排序思想 202006-3 化学 ...

  8. Week2 题解

    T1及题解 T2 CF1207E 首先,异或这个位运算有个很好的性质:x^y^y=x 于是,可以有两种解决方法: 法一 既然让猜原来的数是多少,当它异或了一个其他值val的时候,再异或val就会变回原 ...

  9. OI队内测试一【数论概率期望】

    版权声明:未经本人允许,擅自转载,一旦发现将严肃处理,情节严重者,将追究法律责任! 序:代码部分待更[因为在家写博客,代码保存在机房] 测试分数:110 本应分数:160 改完分数:200 T1: 题 ...

  10. AtCoder Grand Contest 015

    传送门 A - A+...+B Problem 题意:n个数最大值a,最小值b,求和的可能数量. #include<cstdio> #include<algorithm> us ...

随机推荐

  1. python 快速搭建局域网文件服务器 SimpleHTTPServer http.server

    py2: python2 -m SimpleHTTPServer [port] py3:   python3 -m http.server [port] python2请注意大小写. 在Windows ...

  2. 第八章 mysql的主从复制

    mysql的主从复制 一 主从复制搭建 1. 准备三台主机  (这个是多实例) 3307 master3308 salve13309 salve2 2. master 节点设置 [mysqld] lo ...

  3. kafka常用命令(zookeeper与bootstrap-server)

    在 0.9.0.0 之后的 Kafka,出现了几个新变动,一个是在 Server 端增加了 GroupCoordinator 这个角色,另一个较大的变动是将 topic 的 offset 信息由之前存 ...

  4. select from 多表和inner join的区别

    其实两者是一样的,inner join 只是为了区分left join和right join整出来的,本质还是逐行比较

  5. python3+selenium+BeautifulReport生成自动化测试报告

    https://www.jianshu.com/p/3d2c0e092ffb 自动化测试,最重要的还是测试报告,下面就教大家使用BeautifulReport生成自动化测试报告GitHub:https ...

  6. HTTP身份认证

    1.HTTP Basic认证 用户每次发送请求的时候,在请求头中携带能通过认证的身份信息:Authorization: <username>:<password> 1.1 交互 ...

  7. vue+antd实现PDF预览(后端返回的是文件流)

    操作步骤: 第一步:下载包   npm install --save vue-pdf 第二步:导入组件 第三步:使用pdf标签进行展示,showUrl指的是访问路径 第四步:定义要用到的变量 第五步: ...

  8. 【redis-cli】常用命令

    -- 查看数据库下key存储数 redis-cli INFO | grep ^db -- 选择数据库 select [0-15] -- 列出所有key keys * -- 列出key模糊匹配 keys ...

  9. 记录一次 网关负载 流量不均匀 cpu使用率不均衡问题

    网关负载  流量不均匀  cpu使用率不均衡问题??? 1.压力机访问源  有多少ip 有10个? 还是20个? 就是样本源不多的话,负载上hash的话  就你可能不是真实的访问需求 ,你客户端就那么 ...

  10. qt中的一些对话框(个人备忘录)

    一.标准对话框 1.对于颜色对话框 void MyWidget::on_pushButton_clicked() { QColorDialog dialog(Qt::red,this); dialog ...