27届中九软工高rk0科研0陶瓷保研清华软院专硕自闭流攻略
个人背景
| 项目 | 内容 |
|---|---|
| 学校 | 中九 |
| 专业 | 软件工程 |
| 前五学期排名 | 2 / 113 |
| 前六学期排名 | 3 / 112(毛用没有,不用卷) |
| 科研 / 陶瓷 | 0 科研、0 陶瓷 |
| 竞赛 | ICPC 金、若干算法竞赛时尚小垃圾奖项 |
| 目标院校 | 华五以上 CS 院校,对方向没啥要求,不考虑读博 |
参营情况
| 学校 | 项目 | 类型 | 结果 |
|---|---|---|---|
| 中科大 CS | 学硕 | 夏令营 | 入营,优营 |
| 上交 CS | 直硕 | 夏令营 | 入营后放弃 |
| 人大高瓴 AI | 学硕 | 预推免 | 入营,低位候补 |
| 清华软院 | 专硕 | 预推免 | 入营,offer(最终去向) |
| 清华 CS | 专硕 | — | 入营后放弃 |
| 浙大 CS | 专硕 | 预推免 | 入营后放弃 |
有些学校忘了报名,比如北大软微、南大 CS。
由于自己没啥科研经历,也没陶瓷,报的基本都是强 com。如果你的 bg 和我差不多,感觉也没时间去套瓷,可以考虑 all in 某个或多个强 com 项目,尤其是笔试、机试占比比较高的那种。
中科大 CS
环境
应该是最良心的夏令营了,提供酒店住宿,还送一大堆物料。可惜就是留不住人啊。
考核方式
机试 + 面试,比例好像是五五开?
机试
整体很简单,基本都是模板题。
- STL 基本应用:序列去重后升序排序,输出长度和数组。
- 滑动窗口最大值:对每个长度为 (w) 的窗口输出最大值((n \le 10^5))。
- 拓扑排序:对有依赖关系的任务进行排序;如果有环,输出
IMPOSSIBLE((n \le 20))。 - 编辑距离:求最少插入、删除、替换多少次,才能把字符串 (s) 变成 (t)(长度 (\le 200),经典 DP)。
- 最短路:正权有向图,求 1 到各点的最短路,不可达则输出 -1((n,m \le 10^5),边权 (\le 10^9),注意使用
long long)。
面试
几分钟自我介绍,没问专业课,也没问英语。主要问项目、为什么来这里、未来的规划之类的。
结果
优营,但未完成双选。
人大高瓴
考核方式
笔试 75 分 + 面试 125 分。
笔试
幽默:CSP 300+,笔试加 10 分……
如果你想报人大高瓴,建议提前了解一下 CSP 的加分政策,可以的话去考一下。如果分数够高,就能加 10 分。
| 模块 | 分值 | 备注 |
|---|---|---|
| 数据结构 | (15 \times 2) | |
| 数学 | (15 \times 1) | 大概有 3 分不会 |
| 机器学习 | (5 \times 2) | 10 分基本都是蒙的,感觉有三题能蒙对 |
| 算法 / 概率论大题二选一 | 15 | 三问;第一问写了伪代码,后两问用文字描述 |
| 英语大题 | 5 | 今年是中译英,写了一堆小学词汇 |
前三个模块都是选择题。
预计分数大约 50~60+。
德智体美劳考核
很有特色的一个环节:把你的手机收走,然后等面试。我刚好排在倒数,等了很久。
主要问一些生活、工作方面的问题,一般很少挂人。
比如问我:如果组里有个同学拖延工作,影响到你了,你该怎么和他交涉?
面试
流程大概是:自我介绍 → 英语提问 → 抽题(纸上的题)→ 面试官自由追问。
我刚好是那组第二个,还没准备好。面试官全程很冷,问「对不对」「听懂了吗」基本不理你,感觉不太好。
英语
问最喜欢的书,以及这本书对你有什么影响。
当时卡了一下,先说了句 My favorite book is To Live by Yu Hua,后面又凑了句 I'm learned from this book to try harder to gain my goal,就这么用两三句话糊过去了。
项目
问最喜欢的项目、创新点、为什么满意、解决了什么难题、学到了什么。
我没讲简历上的项目,讲的是大二课设 Portal-2D,一个做了半个月的 2D 平台跳跃游戏,GitHub 上有完整项目。
后来被追问:为什么最喜欢的项目不写在简历上?
我说觉得来这边面试,填这个不太合适,但确实很喜欢。
简历上的其他项目他们基本没怎么问。毕竟没科研,感觉也没什么好问的。
算法题
题意:给定字符串 (s)(长度为 (n))和模式串 (P),找出 (s) 中所有与 (P) 互为字母异位词(即 (P) 的任意排列)的子串的起始下标。
普及难度,滑动窗口 + 计数就行。
一眼看出来了。
我以前给别人讲题,不太会先用总分结构:先说用什么算法、整体思路是什么,再讲具体细节。更何况题目本身很基础,我就边想边讲,还是教培那一套,从多个切入点去分析。
讲的时候一直在问他们对不对、有没有听懂,他们都不回。
结果有面试官来了一句:「你可以先想好题目怎么做再讲?」
????讲这种普及题还能讲不明白?当时真的很恶心——自己觉得已经讲得挺清楚了,却被当成连基础算法都讲不明白的人。也可能确实没讲好,但当时不想承认。
最后还追问:如果 (P) 全由同一个字符组成,有什么需要注意的?
这个 case 完全正常,代码也不用特判。我说没什么需要注意的,他们好像还在找茬。
数学题
问矩阵的迹是什么,和特征值有什么关系。
第一反应居然说成了相乘,老师回了句「乘?」才改口:主对角线元素之和,等于特征值之和。
一点感受
一大半时间都花在那道「幼教」算法题上了。
他们好像不太关心你讲得好不好,只在乎答案对不对;可如果只在乎对不对,十个字讲完不就行了?
冷脸 + 不给反馈,整场面试下来真的很无语。
结果
低位候补。
一开始还以为自己不是 WL,后来才知道在候补里也排得比较靠后。听说名额从二十个左右砍到了十个。要是考了 CSP 300+,笔试加十分,说不定结果就不一样了。
清华软院
考核方式
机试 20 分,面试 80 分。不过网上说,实际上可能更看重机试成绩,机试分数高基本就很稳。
机试
三道题,满分各 100 分。今年算是比较简单的一届,我拿了 100 + 100 + 70。
第三题的数据很水:做出来就满分,否则大概能拿 70 分。
-
全排列水题:直接枚举全排列就能过。
-
每种颜色选一个区间,最小化覆盖长度:给定 (n) 种颜色,第 (i) 种颜色有 (k_i) 个区间。每种颜色恰好选一个区间 ([L_i,R_i]),选出的所有区间的最小覆盖区间为 [ [A,B]=[\min L_i,\max R_i] ] 求最小的 (B-A)。
这题我写了两个半小时。前两个小时都在瞎做边界分析,想出正解之后才发现前面想得特别傻逼。
我用权值线段树,按照每种颜色去做 DP,对每个 (L) 维护 (\min R),复杂度 (O(n\log n))。更干净的做法大概是双指针 / 扫描线,只维护答案区间本身就行,毕竟多包进去的一定不优。
-
删点后最小化最大连通块:给定长度为 (n) 的数组 (A)。以每个下标为点,若 (\gcd(A_i,A_j)) 是合数,则连一条无向边。必须删掉恰好一个点及其关联边,求删完后最大连通块大小的最小值。约束:(n \le 10^5),(1 \le A_i \le 10^7)。
这题的正解需要用到的板子我好像带了,但是真的好难写。
部分分原本想打 30 分的暴力(暴力枚举删点 + 并查集),结果最后打到了 70 分。。
面试
第二天是软院面试。材料上没写科研,有啥写啥,第一次把自己最喜欢的项目 Portal-2D 贴上去了。
带着最喜欢的项目打最后一场面试,感觉比高瓴那次舒服很多。
真诚是我的必杀技。
英语说得断断续续;编译原理有一问没答上来,以至于现在都怀疑自己到底学过没有。整体来说,没有被追着刁难的感觉。
结果与选择
当晚出结果,软院要求当晚确认录取,而那时计院面试还没开始。
确认软院,就意味着放弃计院的面试机会。
对我来说,两边的 title 差不多。机试 230+~250+ 的人应该不少,而我 0 科研、0 陶瓷,计院面试未必能过得去;况且我本来就是软工人。
已经很累了,就直接确认了软院。
最终去向:清华软院专硕。
其它
| 项目 | 情况 |
|---|---|
| 上交 CS 直硕 | 夏令营入营后放弃(和人大高瓴时间撞了) |
| 清华 CS 专硕 | 入营后因确认软院而放弃面试 |
| 浙大 CS 专硕 | 预推免入营后放弃。高中以来的梦校,但后面没继续 |
| 北大软微 / 南大 / 复旦等 | 有的漏消息,有的看错 ddl;本质上也是不想去 / 不敢报 |
| 中科大双选 | 八月面了两个组,都没过,没达成双选,约等于放弃优营;九月再捡漏很难 |
一点建议
- 0 科研、0 陶瓷可以 all in 强 com。 笔试 / 机试权重大的项目更吃香。
- 尽量提前了解清楚目标项目的信息。 比如我就不太了解软院和计院不能同时录取,也不知道人大高瓴需要考 CSP,像我这样的可能更适合报人大高瓴的专硕或者智科专业,结果都会比目前好一点。
- 尽量海投给自己多留点退路吧,如果我有北大软微的 offer 的话可能就可以尝试清华 CS 专硕了。