清华大学计算机类专业考研/保研 您所在的位置:网站首页 icpc知识点 清华大学计算机类专业考研/保研

清华大学计算机类专业考研/保研

2023-03-16 18:57| 来源: 网络整理| 查看: 265

本文最初发布于2023.3.15晚,一直想赶紧把这个经验贴写出来,但是却一直拖到了今年考研复试线都公布了...3.19就要正式机试了,2023年考研的同学能多少看一点是一点吧。但是这个帖子目前来看会长期有效,针对后面进行保研/考研的同学都是适用的。

当前初稿仅涉及一些关键内容,如果有什么希望我进行补充和更新的内容,欢迎在评论区进行讨论~

作者背景

本文笔者(即本人)为2022年参加清华大学研究生招生考试的考生。在计算机类专业的复试上机环节得分215分(满分300),排名为计算机系/网研院/深研院一志愿考生的全场第一。目前为深圳国际研究生院--计算机技术专业硕士研一在读。

机试晚6点15开始,做了70分钟之后就开始猪脑过载一直罚坐了(悲)

本文会简要介绍一下机试的考核内容、复试环节(这部分会更偏向考研)、往届题目的做法简要介绍。由于往届题目这部分我会随时补充。即便是初稿发布的现在也有约10题左右等待更新,所以各位可以选择点赞收藏追更,随时查看相关的更新进度。

本文的适用专业

具体来说,清华大学以下学院与专业的保研/考研流程本文均适用:

院系专业代码学位计算机科学与技术系计算机科学与技术 (081200)学术硕士/学术博士软件工程 (083500)学术博士网络科学与网络空间研究院网络空间安全 (083900)学术硕士/学术博士深圳国际研究生院计算机技术 (085404)专业硕士计算机科学与技术 (081200)学术博士

上述各院系的工程硕博士专项、鹏城实验室专项等计科/网安相关的联合培养项目,本文亦适用。

需要注意的是,软件学院的保研机试与本文介绍内容完全不相符,请参考其他相关经验贴。

1.机试大致流程

上机考试(以下简称“机试”)流程出现在考研/保研的面试之前,考核形式为程序设计竞赛类的编程考试。考察在限定时间内对编写程序解决问题的能力。在保研流程中决定了是否发放优营,在考研中决定了是否会在无论复试表现如何都被直接一票否决。

下面,笔者将从几方面大致介绍一下机试的性质和相关流程。

1.1 考研当中机试的分数配比

目前机试自身的满分为300分。

在考研当中,总分1000分=初试分数500分+复试500分。在计算机系和网研院,机试成绩的折算为满分100分,面试折算满分为400分;而深研院会将机试成绩折算为满分50分,面试折算为满分450分。

由此可以看出,机试并非复试中决定性的核心因素,在保研和考博亦是如此。但是需要注意的是,这部分一旦分数过于难看,也是会被一票否决的。这部分我们会在后面再详细进行介绍。

1.2 机试的相关信息

考试时间在疫情之后为3小时(疫情前为4小时+线下熟悉机试环境30分钟),线下机试允许携带纸质资料(线上机试则允许查看电脑本地电子资料)。

机试采用线上评测系统进行实时判题并实时反馈结果。也就是说在考试过程以及结束之后,就会立刻知道自己的机试成绩。共计3题,每题满分100分,每题设置均设置多层给分点。即考生可以尽自己所能获取每道题目的部分分数。每道题目的有效提交次数限制为32次(所以不要试图暴力遍历骗分,其中编译失败不计入有效提交次数),取其中得分最高的一次提交计入最终总成绩的计算。

熟悉算法竞赛的同学可以看出,该赛制可以视作是开卷的IOI赛制,在做题的体验上与不实时返回结果的OI、不给部分分且题目众多的XCPC、各大OJ举办的周赛都有不小的差别。

评测为黑盒测试,即除了题面的样例外不会给出实际计分的测试点。设置给分的方式有两种:

当前数据点正确即给分,该评分方式通常用于大型模拟题。将多组数据进行捆绑进行子任务给分,该组数据点只要有一个点返回的结果不正确,该子任务不得分。该评分方式通常用于算法设计题。

每个测试点会给1秒或2秒的时间限制不等,空间限制一般为512MB。考生提交的程序必须在规定的时间/空间限制之内返回正确的结果才视为正确。对于每个测试点/子任务会返回Accepted/Wrong Answer/Time Limit Exceed/Runtime Error/Compile Error等大致信息。其中只有Accepted意味着你的程序得到了正确的结果,并可以得到相应的分数。

与Leetcode等OJ只需要实现函数接口不同,机试当中需要实现完整的程序(即拥有一个返回0的主函数),这意味着题目的标准输入/标准输出也会被计入实际的时间统计。

具体采用的评测网址为 : TUOJ 在线评测系统

可提供的编程语言如下:

C/C++, 采用gcc编译器(版本较新,允许使用128位整型数据),编译时自带O2优化 (这意味着各种宏指令优化语句是没有必要写的,而且会优化掉相同算法下是否使用STL所带来的性能差距)Java, 其中 javac 版本较新Python, 支持Python2和Python3

但是我个人建议,除非题目涉及高精度操作,一般题目请使用C++进行作答。Python/Java在评测机上进行时间/空间消耗的计算自带劣势,且不会在时空限制上与C++进行区分。同样时间空间复杂度的程序,C++可过,而Python/Java就需要面临无法通过的风险。

1.3 考研复试中与机试相关的具体流程

(这部分保研不太一样,准备保研的各位可以略过)

考研的机试一般有3个轮次,分别为:模拟机试,一志愿的正式机试,调剂考生的机试。

所有一志愿进入复试的考生会在正式机试的前一天进行模拟机试,主要用于熟悉OJ环境和考试的各项要求。该场分数不计入总成绩。第二天为一志愿进入复试考生的正式机试。三个院系的考生会在同一时间参加同一场次。

一志愿报考计算机系/网研院未进入复试的同学,将会直接参加深研院计算机专硕调剂轮次的机试。一志愿进入复试被淘汰的考生可以选择是否再参加一次机试从而刷新自己的机试成绩(一般来说,除非第一次的分数特别低,最好不好刷成绩,否则会面临分数刷低的风险)。深研院调剂轮次的复试成绩单独算分和排名,与一志愿的复试成绩不冲突。

2.机试的题目难度分布&往届题目简单介绍

接下来,笔者会对机试3道题的难度分布进行简要介绍。并选取往届题目,包括:2016年保研的两场机试题目、2017年保研机试、2017年到2022年考研正式机试题目进行简要分析。

后续还会更新2014年考研、2015年考研、2020年保研、2020年考研模拟、2022年考研模拟与调剂、2023年考研等题目。欢迎各位考生进行收藏并随时查看更新。

其中大部分题目在其他OJ上提供评测。这里要非常感谢 @AcWing 的站长 @闫学灿 的大力支持!目前笔者也将自造的部分题目发给了y总,目前还未上架。这部分题目我将先给出来自github/912-project等回忆版pdf的链接。等到题目上架之后再更新评测链接。

2.0 机试的题目难度分布

为了方便后续介绍,我们将第一道题/第二道题/第三道题简写为T1/T2/T3。

其中T1为最简单的签到题,T2/T3其中一题为难度中等题,另一题为最难题(当然了,哪个最难,不同题目拿到不同层次分数的难度都是不一样的,且因人而异),这需要考生在T2和T3的做题顺序中选择适当的策略。

签到题为最简单的题目,不涉及更复杂的算法内容。中等题和难题会涉及一些体量较大、纯考验码量模拟题/阅读理解题以及涉及算法设计的算法题。其中算法题所涉及的知识点最难大概在高中信息学竞赛(OI)的提高与省选这个层次。但是考察的应用与思维量相对于正式的程序设计竞赛会稍微简单和基础一些。只要考生有相关知识点的学习经验,可以在较快地上手。

下面,我们会以往届题目作为例子,介绍不同难度分布的题目及其简易思路题解。

2.1 简单题

简单题一般只会分布在T1(在2016年保研的5题时代则分布在T1和T2)。当然了,简单题类型也不太一样,下面我们将其分为ABC类,其中AB类的题目必须保证拿到满分,C类也需要尽自己所能拿分。

简单题类型A--最基础的签到题

这部分题目没有任何思维难度和代码难度。必须保证100满分拿下,如果这部分的分数拿不到的话,基本就意味着复试会被一票否决。

2016保研A场T1 出现

枚举最小出现的自然数。

2016保研B场T1 众数

枚举众数,值域是给定的,只需要使用数组即可。

2019考研正式T1 众数

枚举数位上的众数。

2020考研正式T1 统计次数

枚举1-n各数位中k出现的次数,可加强为基础数位DP问题,并放在中等题位置。

2021考研正式T1 Prime

暴力试除法判断质数,以及数字之间的拼接。

2022考研正式T1 字符串

计算字符串上连续1的子串对答案的贡献。注意答案是在long long范围内的即可。

简单题类型B--含有小规模模拟性质的题目

这部分题依然不存在思维难度,也依旧需要保证能够稳定拿到满分才可以。

2016保研A场T2 五子棋

简单的五子棋模拟

2016保研B场T2 文件系统

树的简单dfs

2017保研T1 矩阵

二维数组的简单操作

简单题类型C--含有一定简单算法知识的题目

这部分题目并不一定好拿全分,需要一定的算法基础积累,考察知识点大约等于高中信息学竞赛(OI)的普及组。但是仍需要尽自己全力拿到尽可能多的分数。

2016保研A场T4 军训队列

这是一道基础的二维动态规划题目。其数据加强之后可以作为一道基础的斜率优化DP问题,并放在中等题或难题的位置。

2017保研T3 偏差

这是一道结合差分与KMP匹配的题目。需要注意一些特殊的边界数据。以及一些基础的STL使用。如果不会KMP而只会暴力匹配则可以得到50分。

2017考研T1 面试

这是一道结合队列与二分搜索答案的题目。不会二分答案而直接暴力搜索的话可以得到70分。

2018考研T1 思考熊的马拉松

这是一道需要一定数学推算的题目,在推出实际求解公式之后。整数部分使用前缀和计算,需要减掉的小数部分则转换为归并排序/离散化树状数组求逆序对个数的问题。如果没有转换成功而直接使用暴力枚举任意两对数字进行运算可以获得50分。

2018考研T3 路径

这是一道利用二进制与运算的特殊性质,将暴力的动态规划方程换成位运算的视角进行前缀和优化的题目。使用暴力dp的转移方程可以获得45分。

2019考研T3 论文

本题涉及到正反图建模以及有向无环图的拓扑排序。

2020考研T3 图

这是一道基础的图上动态规划问题。使用暴力的dfs搜索可以获得15分。

2.2 中等题

这道题可能出现在T2或者T3,这取决于两道题目当中哪个对于考生更适合拿分。对应的可分成AB两类。

中等题类型A--难度中等的算法题目

这部分题目所考察的算法知识点会比简单题稍微上一个档次。其涉及的知识点约在OI的普及与提高之间。亦或是一些省选知识点的基础应用。和简单题类型C的边界有时会比较模糊,难度评定也因人而异。从这部分题目开始,就需要适当降低对自己的期望,尽自己所能拿到尽可能多的部分分即可。

2016保研B场T4 矩阵树

这是一道Matrix-Tree定理的裸模板题,但是准确的来说,其具体计算方式已经写在题面了。所以可以理解为考察模质数高斯消元求解行列式阅读理解题。只需要一个简单的高斯消元模板即可。

但是如果没有的话,利用线性代数中行列式的定义,采用全排列计算行列式的方式也可以骗到40分。

2016保研B场T5 距离

这是一道稍微带点状态压缩元素的多维动态规划问题。并且在空间上需要使用滚动数组做降维优化。另外,考虑到本题至多百万量级的整数输出,需要考虑使用putchar快速输出整数的方式。本题第一个数据点的10分非常好拿,所以不要说遇到一个题太难了就放弃,能拿多少分就拿多少分。

2019考研T2 升次方

这是一道使用Python自带高精度运算,并结合牛顿迭代法进行高精度开根的题目。使用二分答案可以获得60分的部分分。如果此题不使用Python将会是顶级折磨,除非你是手搓高精度爱好者和抖M,否则我不建议这么做(什么?原来我就是啊,那没事了)。由于Python自带高精度运算会带来考生之间较大的得分方差,笔者认为这种题目大概率不会出了。

2022考研T3 圆上计数

这是一道稍微复杂一些的计数题目。在理解题意并推出实际答案之后,会发现本题三元组计数的限制诸多。但是在暴力的 O(n^3) 做法稍微加点Trick变成 O(\min(n,C)^3) 就可以轻而易举地拿到60分了。在考虑特殊性质A的基础上做一些简单的容斥也可以拿到80分。(然而我考场上骗完60分就直接猪脑过载了QAQ)

本题100分的做法不唯一。笔者顺着80分的思路,结合生成函数的性质,想到了个“线段树维护区间模 x^3 意义下的多项式乘法”的 O(C\log C) 做法。当然了,直接用前缀和后缀和的 O(C) 计数方法也是有的,但是我不太能推的出来...笔者的代码也在912-Project上进行了公开。

中等题类型B--码量/阅读理解量中等或较大的模拟题

这部分题目不考察什么算法,而是单纯的考察对题目的阅读理解,模拟程序的设计。对CSPRO验证熟悉的同学应该知道,每次的T3都是一道这样的题目。所以可以在平时就多加进行练习。我个人建议遇到这种题,优先将其他分数都拿到之后再回来看这题,因为这种题非常需要良好且稳定的心态,以及足够的细心和耐心。

这里的题目将按照难度顺序进行排列,其中最后两题我认为完全可以被列入难题当中。

2020考研T2 等差数列

这是一道基础的BFS模拟题,直接对着题意模拟即可。即便如此还是会时不时写错的,需要思考什么时候可以组成等差数列并推出更多已知的数列。

2017保研T2 工资

这是一道为字符串设计状态转移自动机的模拟题。在读入不同字符时需要根据当前状态进行转移。本题给出C语言一个较为偏僻的性质:代码在行末加上反斜杠符之后,下一行的语句在实际编译中视为与本行为同一行的语句,即便是单行注释也成立。没有相关经验的话可能会觉得有些反常识。另外,本题将所有字符串全部读入完毕之后再进行状态机的转移会轻松方便很多。

说句题外话,打开本题的评测数据,你会发现出题人在第10组输入数据留下了一个彩蛋...

来自《摇曳百合》的赤座灯里,而且这是一个可以正常返回0的完整程序

2018考研T2 棋盘

常规的模拟题,直接按照题意给的意思进行模拟即可。需要注意的是所有的葱需要在运动结束之后统一做战斗结算。否则会出现一个葱运动之后和一个还没动的葱进行本不会发生的战斗。

2017考研T2 扫雷

这是一道体量偏大的扫雷模拟题,其中设计到BFS等基础算法的设计。另外由于本题的巨量指令输入,我们需要考虑使用不慢于scanf的读入方式(比如getchar快速读入)。

2016保研B场T3 表达式求值

这是一道需要一定编译原理基础的题目。根据题目给定的递归语法以及输入的语句构建其对应的语法树。并对语法树做后续遍历输出。如果只会普通的带括号四则运算的话也可以得到40分部分分。构建语法树的时候不要求时间复杂度,照着题目的定义暴力寻找语法树的根节点并与子节点的 O(n^2) 算法完全可过。如果在此基础上设计栈和运算符优先级、或者设计BNF范式做递归下降也可以 O(n) 构建语法树,当然在考场上没有这个必要。

此题虽然质量很不错,但是其方差过大,且对于有经验的考生,完全不需要任何的阅读理解,只要看一眼样例1就能直接明白本题的用意。所以这种题以后大概不会再出了。

2016保研A场T3 麻将猜猜猜

我很喜欢著名选手Snakes于去年在群里爆过的典:

圈名怎么着也给打个码吧()

这题也是顶级折磨题,甚至是我认为所有题中最折磨的一道题。本题不是传统意义上的模拟题,题目给了该麻将游戏中两个最简单的AI策略,并在此基础上进行模拟。除了题目信息中给的从左到右找最小值的策略,以及“已知自己对哪个牌猜过什么点数、手上有哪些牌、全局已经亮出哪些牌”之外,还需要自己推出对方在抽到某种类型牌之前猜测的相同类型牌的序号,意味着对方目前手上一定没有这些牌的信息,才能拿到满分。不仅是写模拟这个过程折磨,推策略本身也是顶级折磨。出题人出着种容易被人孤立的题,大概是玩麻将玩的吧(大雾)。

2.3 难题

这道题可能出现在T2或者T3,一般只涉及提高到省选之间的算法的应用。但是我们依旧可以拼尽全力,拿到一部分甚至大部分的分数。

2016保研A场T5 魔法学校

这是一个利用莫队进行离线区间查询的问题。但是其指针移动的操作并不简单,而需要在线段树上进行区间操作。也就是说在莫队的基础上,我们还需要实现一个区间加法以及区间最值查询的线段树。写起来稍微麻烦一些。但是即使不会线段树和莫队,也可以较为轻松地拿到其中的30分。

2017考研T3 多项式求和

这是一道经典的“拟多项式求和”的题目(即:多项式乘以指数函数形式的级数求和),做法多样。官方给出的标程为结合组合数的 O(m^3\log n) 矩阵快速幂优化dp。但是数学功底强的话,也可以直接进行数学公式推导,再结合组合数完成 O(n^2) 的运算。如果对“拟多项式求和”较为熟悉的话,不需要什么复杂的数学推导,直接套公式,求多项式一次线性递归,并使用拉格朗日插值求出最终值即可,复杂度也是 O(n^2) 。说了这么多,只会暴力算法的话,大概也是可以拿到10分的。

2018考研T4 数列的四种操作

这是一道利用Splay/Treap进行区间翻转的数据结构基础应用题。本题需要打的标记有区间翻转标记与循环赋值标记(即0-1-2之间的循环赋值)。只要Splay的板子不出锅,现场调出来还是没什么大问题的。但是直接用数组暴力模拟也可以混到一些部分分。

2021考研T2 Friend

这是一道结合无向图三元环计数科技进行容斥原理计数的好题。需要从单边的视角、同时连接某点的双边视角、三元环的视角对所有三元组可能出现的状态进行容斥计数。复杂度瓶颈来自无向图三元环的 O(m\sqrt m) 。但是本题真正的难点反而不是三元环计数,而是要求的六种关系中的关系5,其容斥公式将直接影响整个题目的正确性。

如果不会三元环,或者会三元环容斥推不好的话,可以考虑暴力枚举三元组的38分做法,或者从所有单边暴力枚举所有点并进行简单计数的72分做法,这样也可以拿到不少分了。

2021考研T3 Combine

这是一道结合了快速傅里叶变换(FFT)/ 快速沃尔什变换(FWT)/试除法枚举质数/前缀和后缀和的大杂烩。我愿称这题为“基础卷积入门全家桶”。直接用最朴素的双重循环可以非常快速的拿到60分。而100分的做法需要将10种情况分开讨论,其码量可以达到60分码量的3倍甚至4倍以上。

另外,尽管这题的FFT不需要什么思考量,FWT更是个裸模板,但是100分做法需要考虑数据范围可能爆long long,也需要使用不取模的FWT运算。真要拿到这100分需要思考的细节远比60分要多很多。所以在考场上还需要根据时间进行适当取舍。

2022考研T2 飞船调度

这是一道考察平衡树启发式合并的题目。且由于按排名查询元素的功能只需要查找中位数,我们可以不手写平衡树而直接用multiset,并在平衡树出现改动时实时维护中位数对应的迭代器即可。而启发式合并就是并查集中的按秩合并,每次一定将较小的树暴力地插入较大的树中,这样可以保证每个节点被插入的次数不超过 O(\log n) ,从而使整个操作的复杂度维持在 O(n\log^2 n) 。虽然本题有高达40万次操作,但是其初始状态是没有任何节点的。所以1秒之内完全可以通过。

当然了,如果要追求性能的极致,可以考虑自带Finger Search性质的Splay来进行维护,这样可以使其在摊还意义下的复杂度为 O(n\log n) 。但是这就需要考生手写的平衡树没有任何问题。本题数据相当强,有考生合并写对了但是在按排名查数之后,没有将中位数伸展到树根,平衡树本身就是错的。所以连subtask2平衡树的35分都拿不到,只能拿到和用数组暴力模拟同等的20分。再次强调这点,有一个不出锅的板子太重要了...

以上为介绍的往届题,随时可能会进行更新。下面我们来跳出题目之外,说一下与整个复试乃至能否被录取的问题。

3.机试对于录取的影响

在上面我们已经说过了,从分数配比就能看出来机试并不是最核心的要素,但是它同样在整场复试中拥有重要的地位。下面我们来分几个部分,说一些大家可能会出现疑惑的方面。

3.1 机试分数是否有一个硬性指标?

虽然这个硬性的指标并不会进行公示,但是机试低于一定分数是会遭到一票否决的,也就是说:即便你可以正常参加面试环节,但是最终的结果一定是不予录取。

2022年的考研,绝大多数的考生只能拿到签到题的100分。本科曾经拿过ICPC区域赛金牌的一个同学只有140分,当年拿到过高中信息学竞赛国赛NOI2015年D类金牌、以一本线签约清华计算机系本科的同学也只有200分。那么基本上及格线就是100(而不是直接将300分乘以60%去计算)。虽然机试100分会在面试当中会有被质疑“如何证明自己有编程能力”的可能性,但是机试100分在去年就是一个可以上岸的分数了。反过来,报考计算机学硕和计算机专硕低于100分的考生最终都没有被录取。

当然了,这也需要看不同专业之间的竞争程度。一直竞争不算激烈的网研院去年是有个同学机试60上岸了的(这个同学本科背景也很不错)。但是这毕竟只是个例。

这个所谓的“及格线”每一年可能会不一样。2021年的题目更好拿分,所以大家的分数就会普遍的高一些。不同场次之间比较分数没有意义,只需要在同一场次内进行比较即可。

那么至少你要对自己有个要求:第一道签到题无论如何也一定要保证把100分全部拿到,这才是之后能在复试期间展示自己的最关键前提。

3.2 在此之上是否一定要卷到越高越好?

接着上一个问题来说,先说结论:除非你是机试的最高分,在这方面有无可撼动的优势,其他的所有人基本都是众生平等,还要看面试是否能让老师满意、是否有老师愿意捞你。

你可以把机试类比为程序设计竞赛界的“四六级”,除非你考700分大伙都觉得你很牛,其他过了425分的人之间好像差距也没有那么大,还需要从其他方面进行比较。另外还有个最简单的道理,老师招人肯定不收除了做题别的都不会的,虽然机试可以在做题中占据鄙视链中相对上游的位置,但是依旧脱离不了做题的本质。

而且以去年发生在我身边的真实例子,报考计算机学硕的两个同学A和B,B的初试成绩和机试成绩都比A高,但是最后A被录取了,B被刷了,核心还是在于没有老师愿意捞他而已。(当然了,B同学成功调剂网研院,也算是有个很不错的归宿了。在我眼中A和B是非常优秀的同学)

所以这个东西,对于绝大部分人来说,分数够用就行,能把自己力所能及的分数都拿到,剩下的就要看自己平时的积累能在面试中发挥出多少,能否让老师为你抛来橄榄枝了。

3.3 面试时老师会不会问我关于机试题的问题?

在我那场机试结束之后,也有一些同期考生问我有关题目的做法,怕面试时被老师问到。但是以我本科期间曾经给本科学校软件学院转专业机试出题的经验来说,我的结论是:老师根本就不care机试的任何问题。

不仅是他们平时就根本不搞这个,而且他们可能都没有渠道获取本次机试题的内容,甚至出题人连自己的题被选中都是不知情的。老师们能拿到的只有机试结果的成绩单,对他们来说,唯一有意义的信息只有机试成绩这个数字而已。而且这只会成为面试过程中拷打你的一部分而已。正如我刚才所说,如果机试排名中等偏下,即便是已经过硬性指标了,还是会被问“你怎么证明自己的编程能力”这种问题。针对这种压力面,放平心态,别被问垮了即可。

那机试考的好的话,会被老师夸吗?以我的经验得到的答案是:不会。

正如刚才所说,专业面试环节是压力面试环节,老师只会尽可能地施压。在我这里机试这个话题一个字都没有出现过,我反而被问的问题是“为什么你本科绩点排名低”“为什么本科期间没有深度学习经历”,从其他角度尽可能地被拷打。对此,你只需要对自己的软肋一清二楚,并且不要被击碎自尊心即可。遇到这种问题,就要摆出“我知道自己的弱点,也愿意接受老师的批评”的坦诚态度即可。(对,我就烂,你能拿我怎样,最后不还是得录取我嘛)

3.4 针对机试我需要做哪些准备,去尽可能让自己的得分尽可能提升呢?

至于这个的话,我目前是没有心情出有关算法学习攻略的帖子的。我本人页就顶多算是个半吊子,哪天想看点什么就看点什么,也不喜欢高强度跟人竞技,脑子也不是很灵光的那种。另外,这个东西和其他考笔试题的专业课不同,是无穷无尽没有复习的尽头、且非常吃时间和平时积累的。即便我本人接触程序设计竞赛非常晚,我也是断断续续自学了两三年了。

所以对于每个人,需要根据自己的学习兴趣、剩余时间去为自己指定不同的规划。

比如说对于2023年考研生,已经没有多少时间了,至少多做做往届题中的简单题,找找手感,突击一些最容易掌握的算法。无论如何也要以拿到签到题的100分作为优先目标。

而2024年保研则还有四个月准备时间,2024考研则还有一年时间。这段时间可以对着网上有的这么多公开资料、那么多网课慢慢学就完事了。最重要的就是可能就是要勤动手多敲代码多刷OJ吧,归根结底也就是这点简单的道理罢了。只要能把尽可能拿到的暴力分全部拿到了,就已经可以保证自己拿到一个中等偏上的成绩了。对于保研学生就可以在夏令营中拿到优营了。对于考研学生这也相当于保险之一了。

目前感觉想说的就这么多了,如果大家还想看点什么内容的话,欢迎在评论区进行补充,我会看情况适时进行一些更新。同时长期更新对往届题的简易讲解。

那实际上到这里经验贴也就算正式结束了,最后一个环节可能就是我个人的一些碎碎念了。

我个人的一些碎碎念,以及对程序设计竞赛公开正式的告别

这一点虽然我去年就已经道别过了,但是也从没在公开正式的场合说过,感觉还是挺想趁着个机会写一写的。

首先我自己在高中是没有任何基础的,是真正纯粹的高考党。在大学刚入学的时候也并不是很适应大学生活,跟着打XCPC这种事就更不可能了。我实际上真正接触程序设计竞赛是从大三才开始的。当然了,我那会儿也没有说像其他人那样考虑什么性价比的事,单纯就是觉得给我的生活能带来一些正反馈,并且为日后的深造打一些扎实的基础而已。大三这一年在学校里算是做了一些微小的贡献和工作吧。

后来大四上以个人名义参加了CCSP的国赛,这也算是我第一次也是最后一次参加的规模最正式最盛大的比赛吧。虽然那会儿很菜,也就是为了去玩去体验一把才去的。虽然当时很菜,甚至为了点最池沼的bug一直找到最后10分钟封榜了。但是绝地反杀还是很爽很刺激的,虽然就拿了个国赛铜牌,但是我自己还是很高兴的。我知道自己很菜,但是这对我而言也是个很不错的经历hhh。

但是再后来我随便跟着打点oj的周赛,发现自己越来越浮躁。比赛没打几场,换来的却是极其浮躁的心态和高度内耗。我明知道rating这东西和我的未来半毛钱关系都没有,却还是会因此患得患失。说白了就是又菜又爱玩还玩不起,我这种人确实是这样的。所以后来我觉得索性还是不玩了。再加上我脑子确实不灵光,缺少高强度的专业训练和长时间基础的祭奠,也经不起高强度的竞技氛围和心态,我也不觉得自己能真的在算法竞赛闯出个什么名堂。我曾经也思考过“如果自己初高中或者大一就早早入局接触这个,一切会不会不一样呢?”我现在觉得不存在这种问题,无非是摸到自己智力瓶颈的早晚问题了,脑子就卡在这了是最没有办法的。

说实话,我也曾想过研究生再冲个CCSP的金再退役的,虽然准备起来会非常痛苦,但是我也曾经做好了心理准备了。但是考研机试这场,虽然也不是什么正式的比赛,我当时也是照着自己的最后一场比赛去准备的。我真的太想在最后这里给自己留下些什么了。最后也算是不负我的期望,甚至还战胜了当年NOI的D类金牌爷。这也算是对我这一段时间的付出的最好回报吧。

当然了,现在再回过头去看,想出了所有题的满分做法,再回想当时T2明知道按秩合并,但是因为自己没写过就打算只交个55分平衡树就直接摆烂;T3的满分做法的灵感甚至是22年1月刚看过的东西,考场上拿了60分就开始猪脑过载了,还是觉得很难蚌的。不过即使不算是以最完美的姿态结束,也算是以最华丽的方式为自己的这段经历做了最后的收尾了。走到这一步之后,我想程序设计竞赛对我的意义也不在于那一个牌两个牌了,我以后也不会以此过活。等待我的是后续作为研究生的科研生活,就此急流勇退也是个很好的选择。我知道自己也不适合参与这场少数人的游戏,那就返璞归真,回到最开始那样,时不时做做题,在日后挑战和艰辛越来越多的生活中获得一些为数不多的正反馈,就挺好的。

写的很乱,也可能有点喧宾夺主了,但是我觉得无论如何,也算是我最后的道别,也是为了证明我从这段经历中多少收获了一些什么吧。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有