Blog of Samperson

清华九推 | 上交夏令营 | 南大夏令营面经

2018-09-17

2018年南大夏令营在7月14号-16号,上交夏令营在7月15号-19号,清华九推在9月14号-15号。最终通过了清华的九推,写一下面经供今后学弟学妹们参考,如果能帮助到大家那就太好了,有什么问题也可以在评论区留言😁


收到清华复试通知之前一直都没有准备(比较懒……),因此准备机考和面试的时间很短,只有周日到周四5天的时间。所以只是做完了往年的机考题,并挑选了一些Leetcode上典型问题准备了下。在准备的过程中汇总和萃选了一些网上资料,总结了一些小知识点,可以参见我的另一篇博客“五天准备清华九推机考”。


清华九推面试问题

清华的面试大约20分钟,比较看重项目经历,会有一点关于专业知识的问题(我这边问到的数据库相关知识,还有同学问到了离散数学、编译原理 ,有可能会是成绩单上分数最高或最低的科目)。也会有一点与实事和政治有关的问题,以及一段英语对话(我问到的是描述快排及其相关问题,还有同学被要求解释项目中的相关细节)。


本人具体问题如下:
[1] 2-3分钟自我介绍
[2] 描述一个你觉得最有技术难度的项目,详细问题
[3] 另一个项目中提到数据库冗余,如何解决
[4] 数据库第三范式是什么,范式的基本思想是什么
[5] 你为什么考雅思
[6] 你曾经读过哪些论文,最近读的是哪一篇,这篇论文有什么创新点,你是否自己查证
[7] 英文问题:解释quick sort,怎样选择standard number,时间复杂度
[8] 你的博客从去年12月份开始写,为什么只有4月份和8月份没更新
[9] 你在公司实习主要在做什么
[10] 栋梁奖学金有几个人拿



可以提前准备简历,老师会根据简历上的内容来问问题。例如我的问题[3]、[5]、[8]、[10]都是老师在看到我的简历之后的提问。

清华九推机考问题

[1] 30分,题目大意:新的计时方法一天和现实中的一天时间长度相同,但是一天有10小时,一个小时有100分,一分有100秒。一年有10个月,一个月有10周,一周有10天。现实中2000年1月1日0时0分0秒对应新的计时方法中0年1月1日0时0分0秒,输入现实中时间输出新的计时方法中时间,考虑闰年。
[2] 40分,题目大意:计算2^p-1的位数和后500位数字,不足位的用0填充。【提示:使用换底公式】
[3] 40分,题目大意:打气球的游戏,每个气球都对应着一个数字,我们每次打爆一个气球,得到的金币数是被打爆的气球的数字和其两边的气球上的数字相乘,如果旁边没有气球了,则按1算,以此类推,求能得到的最多金币数。【提示:动态规划,Leetcode 312原题 (但是我没做到😭)】


考试时长3小时。


上交夏令营面试问题

上交的面试也是20分钟,看重的是论文的阅读和理解能力,不同的实验室要求不同。2018年ipads实验室没有pre,是20分钟的提问;但是其他实验室均为12分钟pre+8分钟提问。


本人具体问题如下:
[1] 自我介绍
[2] 论文相关问题 + 底层详细问题,15分钟左右
[3] 英文问题:定义intelligence software,不允许描述,只能下定义

上交夏令营机考问题

[1] 题目描述
在企业的产品生产中需要采购大量的电子元件,这些电子元件的质量可以通过全部或者抽样的测试方式进行检验。测试人员会测量并记录电子元件产品的关键参数,例如电容、导电率等,作为这些电子元件等级和判断的依据。在以往人工测试记录过程中,也有测试人员出于节省时间和资源,可能会出现简化质检过程,编造假数据的行为,这对于最终产品的质量带来了危害。
请你开发一个简单的数据真实性检测程序,可以对输入的数据文件进行分析,判断是否有数据复制的造假行为存在。
在进行数据真实性检测时,用户需要选择一个目标文件。用户在选择时,可以直接在文本框中输入文件名,也可以点击按钮,通过弹出的文件选择对话框来选择文件。在选择好目标文件后,点击按钮,就执行数据真实性检测。


[2] 分析结果显示的要求为:

  1. 将数据切分为 4 个等长区间;将每个区间分为 2 个子序列,得到两个子序列的相似度矩阵,以图表(灰度图、热力图等均可)的方式可视化展示每个区 间中序列的相似程度。例如,用一个子序列作为横坐标,另一个作为纵坐标, 用灰度表示相似度。
  2. 使用两种子序列拆分方式检验两种不同的数据复制行为:
    a) 直接二分,将区间从中间分为两个等长的子序列。这种拆分方式用于检测一种按顺序直接复制的行为。例如,在图 2 中的第一行第四个图表, 可以看出第 510-525 行数据与 585-595 行数据的相似度程度极高,可能 存在将 510-525 行数据直接复制到 585-595 行的数据造假行为。
    b) 对称二分,将区间从中间分为两个等长序列后,将其中一个序列反转, 即令所有 ai=an-1-i。这种拆分方式用于检测一种按逆序复制的行为。例 如,在图 2 中的第二行第三个图表,可以看出第 360-375 行数据与第 435 行-450 行数据的相似程度极高,可能存在将将第 360-375 行数据逆 序复制到第 375-390 行的数据造假行为。
    为了检测是否存在这两种典型的复制行为,请分别用这两种拆分方式计算并展示结果。
  3. 当序列相似度超过某一阈值时,即可认定为复制造假行为。在图表结果显示区域下方,显示统计数据,包括直接复制和逆序复制各有多少处,和使用的 阈值。注意,在进行统计时,每一对数据算作一处。根据经验,可使用 5 作 为初始阈值。有余力的同学,可以利用统计学知识通过合理的方法生成动态 阈值。
  4. 最后给出你认为的存在造假行为的数据区间和阈值的优化方法(若有),在验 收上机测试答案时需做说明。

[3] 考核要求:

  1. (15 分)能够实现打开由用户指定的源文件, 具体要求为:
    (5 分)对文件类型进行检查:源文件被限定为 csv 文件,如果用户选择其 他类型的文件,应该提示用户重新选择。
    (5 分)输入文件名打开文件:支持用户在文本框中直接使用输入文件名打 开文件。
    (5 分)通过文件选择对话框打开文件:支持用户通过在文件选择对话框中 选择并打开文件
  2. (30 分)可视化显示分析结果,具体要求为:
    (10 分)能够按照题目要求显示横纵坐标。
    (10 分)能够按照题目要求以图的形式显示相似程度。
    (10 分)能够展示对应数量的图表。
  3. (55 分)对数据文件进行分析,具体要求为:
    (15 分)能够实现直接二分的拆分方式,按数据原始顺序展示正确的相似度图表。
    (10 分)能够正确统计原始阈值下直接复制的部分。
    (15 分)能够实现对称二分的拆分方式,按数据原始顺序展示正确的相似度图表。
    (10 分)能够正确统计原始阈值下逆序复制的部分。
    (5 分)能够设计合理的阈值计算方法。

考试时长4小时。


南大夏令营面试问题

南大夏令营面试是10分钟左右,问题较为随机,一般是自我介绍+项目+专业问题。


本人具体问题如下:
[1] 英文自我介绍
[2] 说一个你最喜欢的项目
[3] 描述一个你最熟悉的设计模式
[4] 软件设计架构里面的四个视图

南大夏令营机考问题

分为Java场和C++场,考试时长3小时。
其中Java场的两道题目分别考察面向对象、考察算法和数据结构。