CSP-s2020初赛游记

这次初赛是我竞赛生涯里参赛感觉最好的一次,从昨天下午做完作业来到机房起,整个人处于一个松弛的状态,实在是不怎么紧张,回想起一年前那个战战兢兢的自己,心感到我一年来的进步是如此之大,不但在竞赛水平,更在心理状态。
考试的时候很淡定,阅读第三题我做了一个多小时,因为我觉得这不但是一个很有难度,要求很高的编程题,更是一道数学趣味题,虽然我最终没有完全理解,但是这个过程我很享受。
完善程序做了不到半小时,相比于去年取石子那道奇葩状压使我15分全扣光,今年的水平很稳定,直接秒杀。
去年的我只考了73.5,接下来的两周时间心态爆炸,整个人浑浑噩噩,虽然后面又滚进了复赛,但这也很说明问题。今天我虽然只考了88,但是体验比去年好很多。

简要评论一下题目
在这里插入图片描述
唯一一道硬件题目,看起来B最正经
在这里插入图片描述

出题者真是一个天才,我本来还以为这又是一道原题,结果这个栈底真的是点睛之笔

阅读第一题是在做两个数or起来的最大值
在这里插入图片描述
我竟然没有意识到n可以等于0,然后我错了,可惜至极
在这里插入图片描述
在这里插入图片描述
这题有数学思想,反证法。若输出为偶数,假设只有一个偶数,那么任意两个数or起来,最后一位肯定是1,那么答案就是奇数了,矛盾,所以C是正确的

阅读第二题,狂喜。前一天晚上我刚发了个求kth的博客,今天押到题了。
在这里插入图片描述
但是今年初赛又加了一个跟去年一样坑的出题方法,去年是把并查集的路径压缩删掉,今年把快排部分搞得乱七八糟,可以发现代码里面在交换的时候处理得很不好,所以最劣复杂度可以到 O ( n 2 ) O(n^2) O(n2),我错了。
在这里插入图片描述
同样的,这道题目用这个代码也是 O ( n 2 ) O(n^2) O(n2),我又错了。

第三题是数学小游戏。
一个字符串,选择一个点 p p p为轴点,可以令区间 [ 1 , k ] [1,k] [1,k]整体往右移动一格, [ k , n ] [k,n] [k,n]整体往左移动一格,问最少步数是初始字符串变成目标字符串。
我还看出了他是在双向bfs
在这里插入图片描述
其实我觉得是对的,但答案是错的
在这里插入图片描述

我模拟了01234到43210的情况,答案是8
所以前后两项的差分别是4,6,6,8,8,10……
通过合情推理得到答案是68
更合理一点的解法应该是,如果n趋于无穷大,可以存在一种 n 2 n^2 n2的解法,即每次可以用 n n n步把两个相对位置跟目标不同的数交换相对位置
所以方案数应该是关于 n n n的二次多项式,用待定系数法,发现 f x = x 2 2 − 4 f_x=\frac{x^2}{2}-4 fx=2x24,那么题目里面 x = 12 , f x = 68 x=12,f_x=68 x=12,fx=68
在这里插入图片描述
这题我四个选项分别构造了几种情况,只有A是无解的,但是我又错了,可能是我计算错误。
其实可以把目标字符串的顺序映射到初始字符串,
C C C的情况下,对于轴点 k k k,假设右边一共有 x x x个数,可以知道 x x x是偶数,再假设右边有 y y y个数应该在 k k k左边,等价于逆序对数是 x x x,每做一次右边的变换, k k k到了最右边,逆序对数的 d e l t a = y − x − x = y − 2 x delta=y-x-x=y-2x delta=yxx=y2x是偶数,那么如果原始逆序对数是奇数,要使逆序对数变为0,就无解了。

完形第一题很简单,但是有一些细节
在这里插入图片描述
本体其实是 c u r W + ( B − c u r V ) ∗ w i v i curW+\frac{(B-curV)*w_i}{v_i} curW+vi(BcurV)wi
在这里插入图片描述
不要被上面的蒙蔽,这里不用除东西,选择B

完形第二题跟去年一样的状压,所以我有经验了,很好想
在这里插入图片描述
x − l o w b i t ( x ) x-lowbit(x) xlowbit(x)手摸一下,D
在这里插入图片描述
我认为四个选项其实都合理,但是硬要说的话,只有C是有意义的

今年题目比去年有水平,也比去年简单一点
后续可能会再探寻一下阅读第三题,我觉得出的很好

Update:
真实分数也是88,再次复盘了一下考试时的策略
这次因为非同寻常的自信就没有管一些细节,认为阅读题第三题很有意义就一直在思考,再加上阅读题第二题我还算是押到了题,结果确实是因小失大了

同机房也有一个98.5的,在zj都能排前十,很羡慕,因为我也是奔着100去的
羡慕的同时,也回想,这次最主要的目的是突破自己初赛考不好的梦魇,难免有点矫枉过正的味道,希望复赛能细心一点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值