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. K8S kubectl命令

    一.kubectl命令 1. 格式:kubectl [command] [type] [name] [flag] command:资源执行的操作,如create.get.delete: type:指定 ...

  2. 【IDEA】测试类(test)的模板及定义

    人和动物的区别是:能制造和使用工具.因为,工具大大便利了我们的生活. 我们在使用Idea开发java项目的过程中,有些代码是固定的,我们能不能只写几个字,就代表一连串的代码.例如,这里,我们只是输入了 ...

  3. 进程间通信测试-signal

    截图 代码 #include <stdio.h> #include <unistd.h> #include <signal.h> #include <stri ...

  4. google api 后端打点上报

    https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type ...

  5. 063_Apex 的 Test类说明

    @isTest public class TestUtil { public static void createTestAccounts() { // Create some test accoun ...

  6. Linux基础第三章:Linux软件安装及yum本地库创建

    一.Linux软件安装 1.Rpm包安装 2.yum仓库安装 二.yum本地库建立 一.Linux软件安装软件安装共2种安装方式,通过rpm包安装或通过yum仓库库安装. 1.Rpm包安装rpm:Re ...

  7. 学习lua-04,json.util merge方法对集合处理的实际应用,及tostring方法

    local jsonutil = require("json.util") local merge = require("json.util").merge l ...

  8. 使用端口排查解决启动Tomcat端口被占问题

    有时候在eclipse中启动Tomcat或启动纯净版的Tomcat会出现端口被占的问题,下面菜鸟小编带大家进行端口排查解决问题.(下面假设是我的80端口被占了,如果你不知道你的Tomcat端口是多少就 ...

  9. WEB攻击与防御技术 pikachu——关于暴力破解

    首先打开XAMPP 然后在网上下载pikachu平台压缩包 解压缩即可.之后进入到XAMPP的文件夹 将pikachu文件夹放到htdoces内就完成了pikachu平台的搭建~ 之后在xampp中点 ...

  10. CSS 常用样式-字体属性

    字体类样式我们已经学习过字号font-size.字体font-family两个属性,接下来还有几个常用的字体属性. 粗细 font-weight: 作用:设置文字是否加粗显示. 属性名:font-we ...