感觉今年比去年简单多了,题目数量变少了,整体难度也降低了,一个dp都没有(大概吧)
这一年也没怎么刷题,主要靠吃老本,考前看了看图论和dp结果都没怎么用上QAQ
和去年一样随便写写,记录一下。
A: 握手问题:
res = 50*49/2-7*6/2
去年的第一题上来就8层循环或者dfs,给我带来的极大的震撼。今年难度真好多了。
B.小球反弹
刚开始写了一个模拟然后严重超时,感觉优化模拟好麻烦,所以等其他题都写完再返回头来琢磨,由于只有8道题,最后剩下了好多时间。
我就开始想,假设经过一段时间之后,小球走了kx次长边,ky次短边,然后回到了原点,那么就可以列出方程:x=vx*t=343720*kx
,y=vy*t=233333*ky
,然后t是同步的,所以把t消了就解出一个kx和ky的比值来,然后求他们两个的最小整数解,带回去得出x和y,再勾股定理一下,应该没啥问题吧。
C.好数
签到题,简单模拟一下,数据范围是1e7,时间复杂度是O(n*len(n)),也就是7e7,不会超时。
D.R格式
有一说一,第一次学大整数运算的时候算法功底太弱了,完全写不明白,也懒得背板子。现在现场推导都基本推出来了,思路不难,试了一些案例都和想象中一样,代码应该没啥问题,果然算法会提升人的综合编程能力。
刚才刷到了有人用快速幂优化,应该不至于吧…
E.宝石组合
看不懂,大概把公式优化了一下,上下消了消,主要防止爆范围,剩下就三重循环了。
F.数字接龙
简单的搜索,数据范围不是很大,N=10,很基础的题目。
G.爬山
第一眼看过去以为是dp,所以随手写了一个dfs,后来写完之后重新看了下数据范围,n=1e5,感觉像是贪心。刚开始还在担心f(x)=sqrt(x)-x/2
的单调性,但题目给的样例都是直接向下取整,那就不用特判a[i]=2或3的情况了,正好dfs可以做对拍器,所以莽一手贪心,直接遍历数组找最大的,然后对他操作。试了一些数据都一样的,就算解法是错的,多少能骗点分吧。
顺便一提,数据结构有点手生,考试的时候没想到用堆,搁那硬循环,现在想想太蠢了。
H.拔河
前缀和+双指针,n=1e3,三层循环可能部分tle,我不好说。
总得来说还是那句话,比去年简单太多了。去年满分150大概就五六十分的样子,今年分数感觉能捞个七七八八。
虽然现在依旧不会写区间dp,只能在蓝桥杯b组这种低分段水一水。但回望去年,脱离算法的苦海之后学了前后端Django+vue,学了机器学习深度学习,准备去日本留学所以学了日语(马上要考N2了)。基础算法只是计算机领域很小的一部分,把眼界放宽一些,或许能找到更适合自己的方向。
成绩出来了,轻轻松松省一,排名跟去年差不多,看来吃老本还是可行的