NOIP2021 T1 报数 题解
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 报数 题解的更多相关文章
- NOI Online #3 提高组 T1水壶 题解
题目描述 有 n 个容量无穷大的水壶,它们从 1∼n 编号,初始时 i 号水壶中装有 Ai 单位的水. 你可以进行不超过 k 次操作,每次操作需要选择一个满足 1≤x≤n−1 的编号 x,然后把 x ...
- 模拟赛18 T1 施工 题解
前言: 真的是不容易啊.这个题在考场上想到了最关键的性质,但是没写出来. 后来写出来,一直调,小错不断. 没想到改的最后一个错误是两个int 乘起来爆了int 其实最后我还是觉得复杂度很假.\(n^2 ...
- Yali7月集训Contest2 T1 Cube 题解
题目链接: 连我们都只有纸质题目...话说雅礼集训都是这样的吗... 大意 0维基本图形是一个点 1维基本图形是一条线段 2维基本图形是一个正方形 3维基本图形是一个正方体 4维基本图形是... 求\ ...
- 上午小测1 T1 木板 题解
前言: WTCL,居然折磨煎蛋的性质都忘记了,WTCL. 考场上想出来了正解,就差一点就能A掉,挺难受的. 要记住一个数n可能会有一个大于\(\sqrt{n}\)的质因子..我忘记把它加进去了.... ...
- 联赛膜你测试20 T1 Simple 题解 && NOIP2017 小凯的疑惑 题解(赛瓦维斯特定理)
前言: 数学题,对于我这种菜B还是需要多磨啊 Simple 首先它问不是好数的数量,可以转化为用总数量减去是好数的数量. 求"好数"的数量: 由裴蜀定理得,如果某个数\(i\)不能 ...
- 「题解」「美团 CodeM 资格赛」跳格子
目录 「题解」「美团 CodeM 资格赛」跳格子 题目描述 考场思路 思路分析及正解代码 「题解」「美团 CodeM 资格赛」跳格子 今天真的考自闭了... \(T1\) 花了 \(2h\) 都没有搞 ...
- CCF-CSP认证 C++题解目录
持续更新中,记录刷题过程并分享一下小小的心得总结. 试题编号 试题名称 标签 202006-1 线性分类器 | 题解 线性规划 202006-2 稀疏向量| 题解 归并排序思想 202006-3 化学 ...
- Week2 题解
T1及题解 T2 CF1207E 首先,异或这个位运算有个很好的性质:x^y^y=x 于是,可以有两种解决方法: 法一 既然让猜原来的数是多少,当它异或了一个其他值val的时候,再异或val就会变回原 ...
- OI队内测试一【数论概率期望】
版权声明:未经本人允许,擅自转载,一旦发现将严肃处理,情节严重者,将追究法律责任! 序:代码部分待更[因为在家写博客,代码保存在机房] 测试分数:110 本应分数:160 改完分数:200 T1: 题 ...
- AtCoder Grand Contest 015
传送门 A - A+...+B Problem 题意:n个数最大值a,最小值b,求和的可能数量. #include<cstdio> #include<algorithm> us ...
随机推荐
- 肖sir_ 杭州_阿里和蚂蚁和菜鸟和支付宝面试题集锦
2023-2-7 支付宝蚂蚁保险-第3面1.自我介绍2.你会Java是吧,有用过spring框架开发过工具吗3.那你用Java来干嘛的?做接口自动化用了哪些库和插件,除了testng还用了什么单元测试 ...
- oracle常用知识随笔
1.创建表空间及用户赋权 create tablespace spaceone datafile '/dev/spaceone'size 80mextent management localsegme ...
- vue项目中配置svg图标 cli3路径
1 添加依赖 npm install svg-sprite-loader file-loader -D 2 在components目录下新增一个IconSvg.vue文件 <template&g ...
- etcd使用Cfssl生成自签证书(pem)
CFSSL是CloudFlare开源的一款PKI/TLS工具,CFSSL包含一个命令行工具和一个用于签名,验证并且捆绑TLS证书的HTTP API服务,环境构建方面需要 Go 1.12+. 需要两套证 ...
- 开始学习Linux
1.路径: 绝对路径: 从根目录开始描述; 相对路径: 从当前位置开始描述的路径; . 当前目录 .. 上级目录 ~/ <===> /home/acs 家目录 ...
- Linux 使用ssh服务管理远程主机
配置网络服务 配置网卡的4种方法: 创建网络会话 RHEL和CentOS系统默认使用NetworkManager来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态.可以使用 ...
- mysql 正则匹配不规则日期
where colum4 REGEXP "^[[:digit:]]{1}/[[:digit:]]{1}/[[:digit:]]{4}"=1 -- 2/3/2021 wher ...
- esxi的一些命令
今天本想在vcenter上建个分布式交换机,没想到在迁移主机端口时,由于主机只连了一个物理网卡,导致在迁移到分布式交换机而失去连接,几近周折,从网上找了几篇不错的文章,与众同乐 假如一台ESX主机先通 ...
- Django框架搭建web项目(四)
启动项目前先创建后台admin账户 项目根目录下运行:python manage.py createsuperuser 设置admin账号成功后,在根目录下运行:manage.py文件,注意设置. 3 ...
- Linux中/etc目录下passwd和shadow文件
/etc/passwd介绍 首先,通过cat /etc/passwd 来查看文件/etc/passwd中内容: root:x:0:0:root:/root:/bin/bash daemon:x:1:1 ...