初一生的 CSP 游记

· · 生活·游记

坐标:GD NFLS\ 考场:smzx

11.1

上午

提前到了考场,结果吃的不让带进去,要考试中途跑出去吃,然后在外面猛吃费列罗,接着静静等待开始考试。

解压两层后用 Edge 打开 pdf ,结果 pdf 没有密码,我直接打开看了看 T1 ,直接秒了,然后看了看 T2 ,写了个 sort 然后用数学方法找座位号,秒掉大样例。然后一看 T3 ,卧槽竟然是异或,然后想到可以用前缀异或和记录,写了很久都没写出来,然后去看 T4 ,发现不会然后直接大法师猛拿暴力分,再切回 T3 卡了很久,结果用了一堆奇怪的东西,然后赛后也没写出来。

出来后 zyc 和 说 T4 不是非常简单吗,但是他们不会 T3 , 我惊呆了.

我跟 zyc, xwd, _pzy 他们一起吃饭,吃完饭我就跟他们进考场了。

下午

然后我到石门考场了,结果里边老师没弄好,我等了一会才进入考场。考试开始后,pdf 还是没密码,开始后秒开 T1 ,不会,然后看 T2 ,发现这似乎是最小生成树,然后一看还有村庄,不会,将 k=0 的数据写了个 Kruskal 后,又回到 T1 ,结果发现 T1 很简单,不用考虑每个人的第三个满意度,我之前想的太复杂了,然后将 T1 秒了,再看 T3 ,不会,然后看部分分一眼 hash 。但懒得打了,因为 hash 都几乎忘光了,于是大暴力,样例似乎没过,看了眼 T4 意识到不可能做出来,然后写了 T2 ,脑抽打了个朴素 Prim ,还打错了,然后就飞走了。

11.8

J3挂了5分?

将错误代码贴一下

#include<iostream>
#include<map>
#include<algorithm>
#include<cstring> 
using namespace std;
int a[500010],b[500010],n,k,endnow=0,ans;
map<int,int>mp;
int main(){
    scanf("%d %d",&n,&k);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
        b[i]=(b[i-1]^a[i]);
    }
    for(int r=1;r<=n;r++){
        if(k==0){
            if(a[r]!=0){
                if(mp.count(b[r])&&mp[b[r]]+1>endnow){
                    endnow=r;
                    ans++;
                }
            }
            else{
                endnow=r;
                ans++;
            }
        }
        else if(k==b[r]){
            if(endnow==0){
                endnow=r;
                ans++;
            }
            else{
                if(mp.count(0)&&mp[0]+1>endnow){
                    endnow=r;
                    ans++;
                }
            }
        }
        else{
            if(mp.count((k^b[r]))&&mp[(k^b[r])]+1>endnow){
                endnow=r;
                ans++;
            }
        }
        mp[b[r]]=r;
    }
    printf("%d",ans);
    return 0;
}

初始化时没有将mp[0]=0,痛失五分,然后 J4 爆炸了,编译没过,因为我是在最后 3 分钟打的,导致挂分;

S考的出乎意料,有151,但是可恶的预估分数线是152。 啊!!!!

11.15

S分数线出了,152,还差一分S1=.\ 但是我有六级勾。~嘿嘿嘿~

操你妈的世界