虽然正面临着DDL……可是一点都不想开动。想写个博客放松一下。
今天刚做完《高级程序设计》的OJ,不得不说真的是有点难度……大致是在已有框架的基础上,要求我们实现一个哈希表。虽然框架代码已经给出了很多实现,后台OJ的测试代码都给出来了,但就算是打出这样的明牌,也没有几个同学能在两小时内拿到满分,而我仅拿到了70分竟然就能够排在前几名。最后助教选择大幅延时,给同学们很长的时间来完成这个任务,这样我才拿到了满分。
不得不说……题,确实是好题,大幅训练了我对裸指针和内存分配释放的操作能力;只是确实不适合没有学习过哈希表原理的同学来做,对于他们来说满分大概比较困难。
课下同学们大呼此次高程OJ离谱,但它在我这里只能排老二。
老大当属转专业的机试。那次机试同样是不同年级在一起完成。但是出题的老师似乎把同学们想得过于强大……
我依稀记得,那天我登上考试账号,像往常一样打开题目列表,点开A题。读完题之后,我稍微理解了题意,但感觉很是不妙:
“这是A题???”
A题大概是说:甲乙两方在棋盘上博弈。棋盘上有一颗棋子置于棋盘右上角,从甲开始,二人顺次移动棋子,但棋子具体能移动到哪一格会受当前棋子位置的限制。先将棋子移动到棋盘左下角者输。现输入棋盘大小,问甲能否必胜?
好像有点玄。我要去看B题,有可能只是难题放在前面罢了。
B题需要在图上完成最优化问题,但是这和在算法课上学的模型绝对不一样!我想我一时没有很好的解决办法。那先等等,再看下C题。
C题仍然是图,但又是一个网格。网格上有一些障碍物,需要计算从起点到终点的路径数。(具体题目我忘了,但答案好像很有限,可枚举)
看完题目,我倒吸一口凉气。
“这真的是考虑到大一同学能力的机试题?”
他们可能连什么是深度、广度优先搜索都不知道,更别说玩转图这个数据结构了。而我作为大二的学生都不会做……这时我选择回到A题。
十分钟。
二十分钟。
我好像还是没有思路。
但又不是完全没有。
这时,老师发话了。
这次的机试题,每道题的数据都分三档,大家使用暴力解法仍然可以获得一定的分数。如果要想通过所有的数据必须给出正解,正解可没那么容易获得的。
看样子,同学们的表现也不会很好。我打开了排行榜。
只见排行榜上散布着零零散散的红色,那标志着没有几个人尝试过,而所有的尝试都不是正解。
我大概松了口气……可是,没有完全松下来。
你是大二的学生。
你是最有希望的转专业候选人之一。
你手里握着的的,是最后一次转专业机会。
这题估计会让绝大多数大一小朋友白送,或许还要难倒很多大二的同学,但是,绝不能让你止步于此!最起码……排名上必须好看。
A题渐渐有了思路:用动态规划打表。可是,只是有了大概的思路还不够,如何建立坐标系、如何将题目中的坐标系转换到手头的数组、如何利用坐标开展计算……都需要我一一解决。
四十分钟。
五十分钟。
我打开排行榜,第一题已经出现了一块蓝色。下方是不计其数的红色。
“问题不大,别怕。”我告诉自己。
七十分钟。
八十分钟。
我的思路已见轮廓。
我打开排行榜,只是多了一块蓝色,和一两块绿色。排行榜上散布着密密麻麻的红色。看样子他们都去尝试别的题目了。老师的提醒又在耳边响起:以拿分为主。
不,不行。第一题的正解就在眼前,你不能打断自己的思路。考试才过去不到一半,会有时间嫖到BC两题的分数的。
你一定可以!只要做出这道题,哪怕就这道题——你也会收获可观的排名。
我又把精力投入A题的debug。我确信自己是对的,只是代码还有一点问题。
九十分钟。
一百分钟。
我又一次按下提交,看到灰的“运行并评判”的标志,以及因自己失败的尝试而产生的、一列令人窒息的鲜红和橙黄色。
这时,那灰色的标志突然化作了绿色。我揉了揉眼,这是真的吗?

我又打开排行榜,此时自己已经跃居第四名。是真的。虽然我只做出这一题,虽然已经有同学做完背起书包离开了,但我还是很兴奋:
你真的好棒!
这下心宽了不少,但还没结束,必须想办法获得后面两题的分数。在确认了自己实在想不出正解之后,我决定使用暴力解法嫖分。
我承认后面自己有些松懈,但结果还不错。最终总成绩186/300,排名第四(没错,后面再也没有人拿出过正解)。结合之前的笔试结果,我对自己的转专业考核心里有了底,并开始期待最后一关——面试。
