CSP-S2024游记

考前

前一天晚上提前回家了,晚上十一点上床睡觉,上午九点半自然醒了,在床上刷了半个小时手机,成功略过了早饭。

午饭前看了一会板子,tarjan、KMP之类的简单板子,但好像都没考到。

午饭吃的很简单,灌了一瓶咖啡,一点钟上车奔赴考场。

两点多进了考场,精神状态不是很好,由于没睡午觉有点小困。

考时

开题之后看到T1人傻了,今年T1这么简单?十分钟之内建完文件写完了T1。开T2,看完题之后有点懵,一开始一点思路没有。想了二十分钟决定战术上厕所,上完厕所回来之后思路果然顺畅了,十分钟之内搞出了正解,然后就是写写写,大概一个半小时时间写完测完了。写完两题之后成功放下了拿一等奖的心理负担,心态也变得平和了许多,看T3,本来是冲着35分去的,结果设完状态写着写着就变成了$ O(nV) $的DP,竟然有65分?!看着时间差不多,想冲一把T3正解,想到一个两颗线段树来回倒的DP转移方式,但是没写完就只剩一个多小时了。赶紧开T4冲暴力,先写了一个12分的暴力,然后发现把暴力的其中一部分复制出来就可以过掉特殊性质A,这样就变成了28分。

时间接近尾声,最后半个小时,开了虚拟机在linux下面又跑了一遍代码,最后确认了一遍文件输入输出。

此时估分:100+100+65+28=293

考后

出考场发现一车人A了T3,有点小慌。

晚上复写了一遍代码,交到核桃OJ上测了285分,还行还行。

一个小插曲,晚上写完代码后发现一个很严重的问题:

    tree.init();
    memset(maxn,0,sizeof(maxn));
    for(LL i=1;i<=L;i++){
        if(vis[i])maxn[i]=i;
        else maxn[i]=maxn[i-1];
    }
    LL ans=0;
    for(LL i=0;i<=L;i++){
        if(minn[i]==-1)continue;
        if(tree.query(i+1)-tree.query(minn[i]+1-1))continue;
        tree.update(maxn[i]+1,1);ans++;
    }
    printf("%lld\n",m-ans);

这样写并没有考虑到 0 0 0位置有没有检查点,但是由于我提前已经把不会被检查到的区间筛去了,所以此处查询最近检查点的操作并不会查询到原本没有检查点的位置,于是就没有问题了。

第二天洛谷数据造完了,测了293分,应该不会挂分了吧?不过顶天挂到270,希望能去今年的清华营、WC、APIO等一众比赛。

总结

今年相较去年,实力提升了不少,主要是正确的比赛策略让我稳定地拿到了分数,虽说没有冲出来T3是遗憾吧,但是我也确实没有稳定做出这档题目的能力,NOIP加油,希望能够拿到省一。

2024.11.4追更

初评成绩出了,与场上估分一致,这次比赛比较成功地执行了去年为自己制定的比赛策略(详见:CSP2023反思),不过T3确实是一车人过了,不过不是本校。T3没有做出来还是要好好反思,自己的实力还是不够,发挥确实不够稳定。接下来还有不到一个月时间了,努力备战NOIP,争取拿到好成绩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值