论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退了近两个小时根本推不出来……