2022CSP游记

初赛第-8天

一年一度的CSP又来了,然而我已经初二了。

这次若是没过提高初赛估计就退役了,努力吧。

做了几道题,感觉手感还可以,2019到2021的初赛题已经被我刷烂了。

我还通过统计学计算出每个选项正确的几率。(然后发现最分数高的竟然是选D!)

最近一场模拟赛第三。

学校作业是真的多…还让不让人准备初赛了。

不过又到了中秋节,我恨不得吧中秋节放到复赛后再来过。

啊啊啊啊啊啊…

初赛第-7天

中秋节,做了一套题…

这都7:00了还不见月亮,这什么中秋节啊(

初赛第-6天

晚上我们还上了两节高中数学,服了,一套题都没做。

原来这天有中秋游园会,8:30分开始,然后我们信息对晚修在上数学,

结果9:40下课时已经结束了,带来买东西的50元白带了。

初赛第-5天

今天上午发现xhj没来上课,我以为是发生肾么事了,就没太注意。

上午第二节是信息课,上来强行脱了极域,然后老师强制关机时我没事(

于是上一个班的作品就留了下来,相当于信息课任务完成了。

然后就开始摆烂…

本来还打算颓MC的,结果发现没网

摆了一节课之后就去体锻了。

初赛第-4天

今天一看,xhj还没来,我觉得挺奇怪,问了一下隔壁机房,才发现xhj停课了!

那他文化课不爆炸? 好卷啊!

老师中午给了我们十几套初赛模拟题(话说为什么这么晚才给啊

专挑程序阅读做了一下,发现都还好。至少没有四毛子算法那么恶心

初赛第-3天

这两天一直在做老师给的题,差不多做了6套了。

晚上数学作业耗了我一节晚修(整整一个小时啊!),

然后中间休息又去找了物理老师,硬是在那等了10分钟,回到教室才发现自己其他作业一笔没动。

语文要求小练笔,英语有周报,生物还有,最后晚修后20分钟我都呆在教室…(我tm还是物理课代,又花了5分钟整理作业)

于是晚上又没去机房。

初赛第-2天

今天中午做了一套题之后觉得初赛准备的差不多了

于是去做正常的OI题(紫),结果发现剩下的半个小时没想出来做法(当然最后是看了题解,然后没写代码)。

中午在发现考场在我们学校,上一次还是2019年。

那这次主场作战,不过也得过了。

初赛第-1天

后天初赛,中午跑去学了一下根号数据结构和cdq分治,结果没做初赛题。

现在初二周五都是8:00才放学…硬生生多了2个小时的“培优”。

最恐怖的是,今天这2个小时培优是语文…,然后晚上老师要我们用30分钟写完一篇600作。

又拖到了8:20才离班,最重要的是,我作文还没写完(啊没错,我语文很烂)

回家已经9:50了,但是可以熬夜!

虽说准备的差不多了,但是还是有点慌,毕竟没过就石俊危了。

初赛第0天

不是,为什么11:00左右我家突然响了防空警报?

当时我在做初赛题,听到后懵了。

周末作业打算摆烂,毕竟考好初赛要紧,考完再补不迟。

这一天又把老师给的那十几套题的程序阅读做了一遍,问题不大。

晚上提前回学校,因为明天赛场就在学校里。

普及目标:80
提高目标:70(当然要看实际难度)

初赛第1天

早上6:30被班中同学未关的闹钟吵醒。

然后7:30离开了宿舍,去了趟机房。

又打了套题。

CSP-J1

8:30和其他同学去苏元楼门口等着。

8:45进考场,我和qyb,sjw,lsw同一个考场。

结果几分钟后,老师把我们叫了出去“本来这个时间点你们是进考场的,但要先检查,所以所有人带齐东西出去。”

搞了半天,我们9:05才全部进考场,然后一堆xxs不停的进进出出,每次回来老师都要检查一遍,又把时间拖后了15分钟。

最后,9:30开考时我们还正在发试卷。

开卷!考号 GD-J05112

第一题,我震惊了,面向对象!然后一看“没有运用”,再看选项“A.printf”,大水题

然后继续往下,又是经典链表插入,但是竟然考了哈夫曼编码,然而我忘了!于是根据我总结出来的规律,选B。

(最后发现是对的,md绝了)

还有一题考递归的定义,侮辱智商。

然后10:00左右,我做完了前面的题。开始程序阅读。

第一题,位运算(啊,那简单)。

16.删掉 unsigned 行为不变?第一反应是肯定变化啊,然后一看数据范围

假设输入的x、y均是不超过15的自然数

一算,这范围才 [0 ~ 255]。

17.改成 char 行为不变()

先想到 char 范围满足,然后才发现输出没强转 int。(会输出一个字符)

18题是来搞笑的?

19,20不是两个相同的问题吗?一算,发现 2 2 答案是 12,服了两个都错。

21 带进去强算都没问题。果然是普及组啊。

下一题。

两个函数,算法不同,一眼望去(这不是CCF常干的事情吗),输出肯定一样。

然后再来深入研究,先画个表,填好 n=0,m=1 两列,然后开始递推:

f01234567891011121314m
0000000000000000
11
22
33
44
55
66
77
88
99
n

一开始,我把递推式误看成 f [ i ] [ j ] = min ⁡ 1 ≤ k ≤ i ( f [ i − k ] [ m ] + f [ k − 1 ] [ m − 1 ] ) f[i][j]=\min_{1\leq k\leq i}(f[i-k][m]+f[k-1][m-1]) f[i][j]=min1ki(f[ik][m]+f[k1][m1]) 了。

结果推半天推出来 f [ i ] [ j ] = i f[i][j]=i f[i][j]=i

看选项,竟然有20我也是服了,等我用这个东西做到第 27 小题,发现选项没有 100。

我:算了先下一题吧。

第三题,solve1 一看就是而非,找啥,发现是 s q r t sqrt sqrt 下取整。

solve2 在干啥?x=(x+n/x)/2,看不懂。带入2 k 进去算,发现越来越接近 1.414

大概懂了,开始看题,28,复杂度,logn+k,对的,没问题。

9801 1,前面得出是 99,带到solve2,发现不变。对的。

30题想了比较久,最后还是选了错。

31题,47000,一平方发现是 22亿多,下意识选了对,结果赛后发现根本取不到这个值。寄了。

32 33 34 感觉都很水。

补全程序

两道题5分钟,这东西是来搞笑的吗????枚举因数都出来了。

(当看到两题答案都是ABCDA的时候,我一度怀疑我是不是做错了)

还有半个小时,回去看程序阅读第二题。

突然发现递推式错了…

于是重新推了一遍,推到m=3的时候,发现规律,m够大时

序列是这样的,1个1,2个2,4个3,8个4…

然后秒了 2627。

检查了几遍,然后响铃,出考场。感觉至少有 80 分。稳过。

突然想到过了好像没什么哈…

中午回机房去睡大觉,又对了对普及组答案。

13:50,离开了机房,前往S1考场。

CSP-S1

真正的初赛开始。

和qyb sjw lsw lsc ljy一个考场,发现考场被二中占领了

监考老师14:15发卷,14:30开考。

1.又是Linux,能换点别的吗?还好我用过。

2.这啥,完了没用过,发现第一项约等于后两项加起来,real?,挺真实的,于是选了A

3 4 大水题

5.???宇宙射线?乱蒙了个C。

6.怎么净是些我不会的??小端是啥,大端是啥?按照题目思想,我选了个B

7.算错了,选了D

8 9 大水题

10 不应该是105吗这道题???不会,乱蒙B

11~15 大水题。

看了下时间,15:10分,开始做程序阅读。

第一题,字符串?然后观察,shift[i] 代表字符 i 在 t 中最后出现位置的后缀长度。

往下看,s[i+j]==t[j],哦,是字符串匹配。

16.不存在,输出 -1,对

17.位置是3,错

18.带入计算·,发现只在到最后两个二前一次也没有执行j++。于是选对。

19.第一眼想选A,转念一想,没学过这个阴间匹配算法啊,如果这复杂度能爆碾KMP,我们应该早就学过了。然后就选了D

20.当时不知道rfind是啥,但是知道find是啥,于是选了A。

21.又带入计算,一开始以为每次往后跳4个字符,最后只执行了4次,最后发现,是第一次跳了五个,结果我选了B。

然后没发现最后一个不用跳正确答案应该是A。

下一题,我先看了22题目,这是一个不稳定的排序算法。()

然后用排序算法的思路去想,很快就想出来是k进制基数排序。

知道这个,22 23 24题直接秒杀。

25.五个数模三后排序,因为是稳定的,所以选D

26.乱蒙,感觉是C,于是选了C(最后发现是D)

27.水沝淼㵘。

第三题,感觉像进制转换?将n转换成k进制。

啊啊啊啊,我不会负数取模,完了。

28.感觉很对,于是打了个勾,结果事与愿违。

29.CCF又双叒叕灌水沝淼㵘。

30.按照k进制的想法思考了一下,好像对的。

31.100转7进制,202没问题。

32.吐了,负数,然后我摆烂,算了后两位,发现没这选项,只能选了C(当时最后一位是7)。怎么都没想到答案会是B

33.同理,我算出来了个D,结果答案还是B。

然后发现只剩40分钟了,开始做完善程序。

两个有序数组k小值。

说实话,我没太看懂这个代码,于是按照奇怪的方法做完了这五道题。

但其实37.38挺简单。

在做36时,我一看,left1==0,哦那left1<right1了。

于是想都不想选了B,赛后才发现根本就是不这样,是C,right1<left1。

最后几分钟回去检查了一下,感觉出题人的脑子被宇宙射线辐射了。

考完了,出考场时感觉提高有点悬。估分 [65,75]。

和qyb,lsc对了一下答案,一下子发现自己和他们答的好多不一样,最恐怖的是,他们两的差不多

我感觉我完了。

4:30分考完,我们每天周末3:00会有数学课,到5:00,然而我懒得上就回机房了。

发现洛谷上有人给了题目,于是打开在机房里和lsw讨论答案。

前面5题确认对了3题,发现没有太多错误。诶,感觉能过。

发现洛谷上有人给了答案,对了一下,79分。

好,基本稳了。

后来晚上回宿舍的时候发现,我多扣了自己分,记成2分一道判断题了。

9.25

下午听yzh说提高分数线50

“就这?CCF开玩笑吗”
“这不有脚就能过”

9.26

又听lsw说分数线76.5,觉得这还有点合理

但是关我什么事呢?反正我估分[75,83],大概率都能过。

9.27

中午出分了,尝试登陆查分,结果CCF查分网站给宇宙射线轰炸了。

yzh开了一堆标签页来卡上查分网站,最后查出S68.5。

我试了几分钟,一次都上不去,于是摆烂了。

9.28

早上yl和我说他S78.5我S77.5。

还好,在我预测范围内,

大概率能过(虽然GD至今都没出分数线。嗯,好像就差我们GD了)

中午发现J96.5,出乎意料(好像是全省第一)。

突然感觉自己很强 ,话说我2020CSP-J1也考了全省第一(

10.?

出分了,真的?55?全机房都过了???

后来发现€€£整了2000机位来收钱。

DAY -6

下周今天初赛,感觉很慌。

早上模拟赛全机房都做出了 T1,最后发现只有 90 分

思路和正解完全一致,但是莫名其妙丢了 10 分

没打暴力结果倒数了…

这周一直在做DP,后来老师叫我去做CF。

什么?昨晚颓废被抓?

DAY -5

发现作业没写完,打算数学课上补,先去做OI题吧。

反正也快要复赛了。考不到一等就要摆烂喽。

DAY -4

上了CSDN才想起来今天程序员节。

啊啊啊啊…一天三次测试(你干嘛…哎…呦

这什么老师啊。

DAY -3

英语考炸了,突然发现11月2号期中考

没办法只能开始背道法了。

这…这不对吧,我CSP呢?

DAY -2

道法考砸了。摆烂了。

DAY -1

后天复赛,现在开始最终冲刺。

作业好多…整个晚修从头做到尾。

DAY 0

复赛考场又在二中,晚上家都不用回了,直接待在学校。

明天早上普及我不参加,但是好像要用到我们机房,备考不了…

中午回机房时,在四楼其他机房发现了贴好的比赛座位表…

看到自己名字了,四楼电脑语音四室,座位号16。

仿佛看见了自己明天坐在那个位置上冥思苦想…

不过好像我们机房没有作为考场。

下午去买了个巧克力,明天考试吃。

晚上语文课直接请假,复习模板去。

明天lsc要考普及组,没办法我们只能早点睡了。

10:12离开了机房。

回到宿舍,发现物竞zry在。

lsc定了一个7:10的闹钟,铃声是鸡你太美

10:30 关灯,睡觉。

DAY 1

早上被kyh遗留下的闹钟吵醒。

lsc一怒之下,闹钟尸横遍野…(电池洒落了一地)

继续睡觉。

7:10分,lsc的鸡你太美准时响起。

又被吵醒。

想了想,算了还是去机房吧…

CSP-J2

lsc, wjy, yzh 参加了普及组。

来到机房,哇,除了我们机房之外其他机房门口都站满了人。

看到了许多我校初一学弟。(话说他们好猥琐啊

这届初一很强,连提高都没报。(当然除了至尊强者 fjy)

在机房和dyy复习模板。发现自己忘了tarjan缩点。

11:30分就复习完了,然后开始摆烂。

1:35最后复习了一轮。

把 splay, tarjan, KMP 等背了一遍。

1:45前往考场。

有一个小六(应该是吧)突然去问 sjw 一些关于二中的问题…

“你们这边有编程班吗?”

一旁的 wxd,qyb和我差点笑死。

2:00终于进考场了。

CSP-S2

但是进考场还不能做题,对着“CSP2022考试注意事项”罚坐了30分钟。

2:27,“好了,现在可以开始解压压缩包了”。

密码:slimy2022(啊艹忘了)

2.28,解压完了,我连选手的文件夹都没建直接开始看题。

T1. 相邻旅游景点之间间隔不超过 k + 1,从家出发走四个不同景点再回家,问最大积分。

第一眼,第一个景点离家不超过 k + 1,第二节点离第一个景点不超过 k + 1。
第四个景点离家不超过k + 1,第三个景点离第四个景点不超过k + 1。

也就四个景点,劈开一半讨论。

f[i][j] 代表经过了两个景点,第一个不是 j,第二个是 i 的最大分数。

然后最终答案就是枚举所有距离不超过 k + 1 的 i, j,取 f[i][j] + f[j][i] 最大值。

这… 这不对吧,好像是 O ( n 3 ) O(n^3) O(n3) 啊。

额…算了,70也不错,毕竟10分钟就拿到了。

2:40

先去看其他题吧。

T2. 两个序列 A n {A_n} An, B m {B_m} Bm,一个矩阵 C n , m C_{n,m} Cn,m C i , j = A i ∗ B j C_{i,j} = A_i*B_j Ci,j=AiBj
q 次询问,每次 A 在 [ l 1 , r 1 ] [l_1,r_1] [l1,r1] 内选一个数 x,B 在 [ l 2 , r 2 ] [l_2,r_2] [l2,r2] 内选一个数 y。
A 想让 C x , y C_{x,y} Cx,y 最大,B 跟 A 过不去。询问每次最终的数。
假设所有人都是大聪明。

啊, C x , y C_{x,y} Cx,y 就是 A x A_x Ax * B y B_y By

那每次 A 肯定选 A x A_x Ax 最大啊,B 就选 B y B_y By 最小。

艹,还有负数…

等会再来做 T2,看完题先。

T3.什么鬼题面???

好吧,每次切割一条边,或到达一个点的所有边,然后询问是不是基环树森林。

没什么想法。

T4.一棵树,每次询问给两个点 u,v,问从 u 到 v 每次最多跳 k 条边,经过点权和的最小值。

第一眼,DP,但怎么 DP?

回去做 T2 吧。

那先讨论 M I N B i > = 0 MIN B_i >=0 MINBi>=0,这时候 A x A_x Ax 无论如何都选最大, B y B_y By 自然要小。

M A X B i < = 0 MAX B_i <= 0 MAXBi<=0 A x A_x Ax 肯定选最小的, B y B_y By 就选最大的。

那么 B i B_i Bi 有正有负?

没事,先讨论讨论 A i A_i Ai

M I N A i > 0 MIN A_i > 0 MINAi>0 A x A_x Ax 最大的话, B y B_y By 一旦选负数,没了。

所以 A x A_x Ax 选最小值,这时候 B y B_y By 自然选负方向最大的值,也就是最小值。

M A X A i < 0 MAX A_i < 0 MAXAi<0 A x A_x Ax 无论选啥, B y B_y By 再选负数就是助人为乐了,于是选最大值。

A A A 为了追求执念,于是要选负方向最小值,也就是最大值 M A X A i MAX A_i MAXAi

然后…最终该来的还是来了,若 A i A_i Ai 有正有负…

A 选正数,B 就选负数,A 选负数,B就选正数。

那 A 就有两种选择,一种是大于等于 0 的最小值,一种是小于等于 0 的最大值。

然后 B 则在 A 选大于等于 0 的时候选最小值,A 选小于等于 0 的时候选最大值。

讨论完了,于是我们要想一个数据结构。

可以维护数组,支持询问区间最大值,询问区间最小值,询问区间大于等于 0 的最小值,询问区间小于等于 0 的最大值。

有什么数据结构呢?

STL表!!!

难以置信,我居然认为我会做 T2!

2:45,那开始打代码吧。

3:14打出来了。

经过各种调试和修改,我在 4:30 总算,写完了。

艹,只剩两个小时了…

先把 T1 暴力拿了吧…

花了半个小时,写了个 O ( n 3 ) O(n^3) O(n3) 暴力。

T3,还是先打暴力吧。

基环树可以直接 O(n) 判。

好像 O(nq) 可以写。有 40 分。

T4,先写个差分,解决 k = 1 的,有 16 分。

然后提取出链,直接 DP,可以拿到 n <= 2000 中的 k = 2,应该有 20 分。

总分一算:70 + 100 + 40 + 36 = 246。

大概率可一等。

最后 10 分钟打算打个 T2 对拍,结果没写出来。然后摆烂。

出考场。

DAY 2

把考号交给 lsc,帮忙测了一下

10 + 0 + 0 + 36 = 46

什么鬼?我 T2 TLE了?

不对啊,我严格是 O(n+q) 的。

越界检查了也没有,freopen 也删了。

最后,反应过来开了个 int 的函数,然后末尾没写 return 0;

话说这样在考场上会炸吗?

T3 也是同样的情况…

服了。

突然发现自己进迷惑行为大赏了

DAY 3

lsc 又告诉在某 OJ 上测了 0 分???

我不信,我非常不信。

但是还是摆烂了。

明年CSP我要开warning!!!

不管了,下次注意就行,CSP2023RP++

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值