论2021NOIp
2021.11.20NOIp
考点:邯郸市一中(也就是本学校)
考场:2考场(机房3)
考号:HE_0150
座位号:57(可恶,座位挨着门冻的不行)
csp以及期中考试考的并不好(很差),从csp考完之后到考NOIp,心态一直很混乱,直到考前也没有完全调整好状态,因为种种原因,考前一晚上还失眠了, 躺在床上完全睡不着,在脑子里推一些dp还有图论数论的东西,脑子里乱的不行,早上本来是七点起床铃,六点醒了之后就一直没睡着, 早上吃饭的时候喝了杯coffee(贵族了属于是),所幸的事考试的时候没有犯困,不然得难受死
所以大家考试之前一定要调整好心态,好好睡觉
考试前几天因为请到了假,在机房敲了几个板子什么的,考前的模拟赛也考的挺好的,但是可能是因为csp成绩的影响,一直很慌
考试的时候看题脑子里甚至会想到谁谁谁多么擅长这个,然后别人能考好我考不好什么的……
早上到机房看了会书,有点看不进去,戴上耳机听了会歌老师对不起,因为忘了拿水杯(我个憨批),把准备中午吃饭时候喝的
营养快线拿走了,老师还给了小饼干有一说一,真好吃就进考场了
做到考场发了会呆,想了想文件怎么存,就开始考试了!
解压完考试题目文件,用360极速浏览器打开了我的考试题~目~
T1
刚看到题的时候,脑子里想的是不会爆0了好耶
先花了挺短的时间敲了一个暴力,然后发现题看错了,没有考虑的十进制中含7的数的倍数,试了好几遍样例才发现错
手推样例!好好看题目,不要被题目中无关的内容吸引!!
又打了个暴力,样例倒是能过了,但看了看数据范围,觉得自己是个啥b
先看数据范围!!不要浪费时间!!!
想了想,知道要用到筛数,想了半天没想到怎么线性筛,就写了个明知不会a还义无反顾的一个数会重复筛好几遍的代码
#include<bits/stdc++.h>
using namespace std;
int t;
int x;
int cnt;
bool mmp[10000010];
int panduan(int n)
{
int tot=10;
while(n!=0)
{
int oto=n%tot;
if(oto%7==0&&oto!=0)
{
return 0;
}
n/=10;
}
return 1;
}
void bin()
{
for(int i=7;i<=cnt;i++)
{
if(panduan(i)==0&&mmp[i]==0)
{
mmp[i]=1;
for(int j=2;j<=cnt/i;j++)
{
mmp[i*j]=1;
}
}
}
}
int main()
{
cin>>t;
if(t<=10) cnt=110;
if(t<=100) cnt=1100;
if(t<=1000) cnt=11000;
if(t<=10000) cnt=220000;
else cnt=10000500;
bin();
for(int i=1;i<=t;i++)
{
cin>>x;
if(mmp[x]==1)
{
cout<<-1<<"\n";
}
else
{
x++;
while(mmp[x]!=0)
{
x++;
}
cout<<x<<"\n";
}
}
return 0;
}
有一说一这个变量名我自己都觉得自己伞兵
写完了之后发现在Windows下就是样例四也能很快算出来,我天真的以为自己可以a掉它
在linux下试了试,样例四运行了17s……
2021.11
后面几道题对我来说实在是太难了,t4部分分也很难拿, t3公式推了推只写了个12分的代码,t2退了近两个小时根本推不出来……