唯一一个参加的夏令营,不记录一下是不行的。一些时间线和笔试机试的题目等建议参考这位大佬的文章,写得非常非常详细,本文比较偏流水账(
前情提要
一年多前,我曾经发了篇文章记录我参加南软软件开发马拉松的经历。在文章的最后,我提到我因为排在前 12 名侥幸获得了参加夏令营的名额,并且我请求顺延到了第二年,然后就是杳无音信。
报名和准备
本以为这只是南软画的一个大饼,没有兑现的机会,何况还顺延了一年呢?不过,说不定呢?于是在南计夏令营公告出来的时候首先问了之前比赛群的工作人员和群主,得到的答复是到时候出南软夏令营公告的时候打电话问工作人员。
于是稳住,等啊。待公告出来后,我打电话询问工作人员,犹记得当时是在上午走路去滨海大厦上班的时候,得到的答复是他们都有记录的,正常报名即可。
只能说敬礼,南软真的守信用啊,比你武好多了。
接下来就是报名和准备了,报名就不说了,主要是需要一些纸质资料,有些还要去学校打印。然后就是时间问题,夏令营在周四周五进行的,意味着必须要请假了,琢磨了很久,还是请了周三四五总共三天假。路程是周三先去武汉准备资料和笔试资料,再马上坐高铁去南京,然后周六也是先回武汉放东西,再回深圳。
笔试
赶路和逛逛酒店周围就不说了。我们直接快进到那天上午,首先也是从侧门进入了,但是侧门也有高贵的南京大学标语。但是不得不说,还是没有仙林的标语震撼。
然后还有软院的门前。
然后就是进去并坐电梯上去了,这里还发生了件好玩也有点哈人的事情。就是有人坐电梯的时候电梯疑似寄了,人被困在里面了。当时还在绿群里聊这件事,当然后续也是找工作人员成功出来了。
然后就是正式笔试了,因为有些科目的资料基本没准备还是比较慌的。
离散是一点不会;软工还好是这个学期刚学的,而且有书比较会点;操作系统还好,主要是 PV 我忘记哪个是释放哪个是通过了,非常尴尬;计网有道算某个通信模式的最大效率的题,刚好带的黑书上有推导的过程,猛猛抄了;数据库 b+ 树是一点不会,后面的好像也不太会。
总结:寄。
中午去外面吃塔斯汀了,南软夏令营也不包吃也不包住也不报销路费,怀念马拉松了。
机试
听说之前机试不是这样式的?得亏赶上好时代了。
硬币问题
听说这题暴力还是贪心基本就能拿下了。不过当时认为这题是背包,然后也想不出个所以然来,于是后面使用了骗分大法。
可以看到输出只是一个数字(最少要添加的硬币的数量),而且是 ioi 赛制,这不就是给我们套答案骗分的吗?首先直接 puts("1")
,三十多分到手;再试试 puts("2")
,诶这个有二十多分,puts("3")
则有几分。然后我们再根据题目给的一些变量倒腾一下,分条件输出 1
或 2
,或者再加个 rand 试试运气。诶,您猜怎么着?还真骗到了五六十分。
其实大学打蓝桥杯、天梯赛、CSP 下来,最大的一个收获也是这个:一点分也是分,不能总想着能 AC 的答案,有分就是成功。
圈点问题
这里枚举分界的时候其实有个问题就是 xmax, xmin, ymax, ymin 怎么维护。首先枚举分界可以理解为把一个点从 A 矩形给到 B 矩形,对于增加节点的 B 矩形来说,维护是比较方便的,直接比较新增节点的 x, y 即可。但对于减少节点的 A 矩形来说其实就没那么方便维护了。
这里的想法是就是不计算 A 节点了,而是枚举的两遍,一遍正着枚举点,计算增加节点的 B 矩形面积;一遍再反着枚举点,计算增加节点的 A 矩形的面积,然后对应相加即可,这样就不用苦恼怎么维护了。
数牛问题
这里是想象了一个二维平面,其中 x 轴是时间线,表示牛出现在视野中的时间,y 轴是牛的远近位置。然后就是暴力求解枚举,按 y 排序,从近到远依次把牛出现在视野的时间平铺在时间线上,只要有一个时间点牛没有被更近的牛遮住,那么就说明可以观测到。
很显然的是时间太大了,用数组肯定会爆空间,于是就使用了 bitset 来作为时间线,1 为这个时间点已经有更近的牛了,0 则为没有。
一开始这个方案拿了六十多分,后来好像是题目有问题还是测试用例有问题,改动了测试用例(还因此延长了半个钟时间),又试了一下居然有九十多分,还是挺意外的。
回文填表
一开始也是想模拟,结果发现有点控制不住。
后面想到可以用并查集,把可以通过回文对应的格子归到一个集里,然后每个集里肯定至少有一个格子是填了字母的(因为保证唯一解),答案自然就出来了。
最后大概是排十多还是二十多名,还是没想到的,只能说全靠机试救了一手。
面试
面试前比较不安,还紧急制作了一版简历并打印,进去后首先是发了简历,然后就是简单自我介绍。听说我这组别人被拷打了科研,但大概因为我没科研,所以就问了我项目。
主要是隆重给他介绍了一下我写的车万原曲识别游戏,感觉每个人一开始都认为是音乐软件的听音识曲那种感觉,但实际情况好像正好相反。
然后就是被拷打这个项目没什么深度,而且也没有太大的技术价值,那我也是据理力争,说我也是发布到 b 站上了,反响也还行。结果被嘲笑 b 站那些人没什么技术水平,不能说明什么。
后面就是辩,估计也给面试官辩烦了,而且应该也超时了(只有十分钟时间),给了个台阶下就结束了。回收简历的时候偷看了一下面试分数,似乎每个人的分数都大差不差,大概面试真没那么重要?
后续
上午结束了面试然后没事做了,于是下午去钟山瞻仰孙中山先生了。这个就不多说了,就是走路和走路,热死了。不过钟山的这个 logo 有点让我想到了华南理工的校徽(
然后就是在 7 月 15 号的时候收到了优营的邮件:
还是非常激动的,没想到居然真的优营了,最后也是选择了南软。