夏令营经验贴请见上一篇
博主仅参加了清华网研院的预推免
清华网研院
进入预推免面试大概有40多个 较贵系而言名额较少
今年最后录取的有34个 14个直博 20个直硕
详细信息可以参加网址 名单
这里因为涉及保密情况,就简单叙述下流程
机试
300分 3h
和夏令营机试形式一样
原本体验过过贵系的夏令营机试已经非常难了,预推免难度能稍微降低一点,结果今年的机试没有想象中那么简单
第一题 : 自动售货机 (10%)
题目描述
一共有
n
n
n 种饮料出售,每个售货机都有一个出售口,购买第
i
i
i 种饮料时,在第
i
i
i 个出售口支付
a
i
a_i
ai 元
每种饮料各自进货
1
1
1 瓶 售货机出故障了 可能出货不属于该出售口的饮料
第
i
i
i 个出售口 支付
a
i
a_i
ai 元后 如果饮料
i
i
i 和
b
i
b_i
bi 都有存货
p
i
p_i
pi 概率出饮料
i
i
i
1
−
p
i
1-p_i
1−pi 概率出饮料
b
i
b_i
bi
如果一个有存货,另一个没有存货,则出货有货的那一个饮料
如果两个都没有存货,则不会出任何货 并发出警报(相当于把你钱吞了)
现在
有人希望买饮料
z
z
z 售货机中
n
n
n 种饮料都有
1
1
1 瓶
他决定采取以下策略来购买:
(1) 在
n
n
n 个售货机等概率选择一个出售口
s
s
s 开始购买 支付价格
a
s
a_s
as
(2) 得到想要的饮料
x
x
x 时 停止购买离开
(3) 得到不想要的饮料
y
y
y 时,继续在第
y
y
y 个售货机购买 支付价格
a
y
a_y
ay 继续购买
(4) 当售货机发出警报,停止购买
最后需要你给出他一次购买过程 期望 支付的价钱 ?
输入
第一行: 两个整数
n
n
n,
x
x
x
接下来
n
n
n 行 每行三个数 第
i
i
i 行
a
i
a_i
ai,
b
i
b_i
bi,
p
i
p_i
pi
输出
一个实数 表示期望支付的价钱
答案
a
a
a 和 你的输出
b
b
b, 只有
∣
a
−
b
∣
<
1
0
−
6
|a-b| < 10^{-6}
∣a−b∣<10−6 时输出正确
核心思想:递归求解和分支判断
刚开始有很多细节没考虑到
最后花了 2h 才 accepted
第二题:水滴
类型:大模拟
比夏令营简单,夏令营是仿Minecraft 而且机制比较多
有一定参考价值
题目描述
n
×
m
n ×m
n×m 的棋盘 每一个格子中都有一些水滴
玩家操作是在一个格子加一滴水
若一个格子的水滴数超过4个 这个格子的水滴就会向外扩散 规则如下
格子水滴会消失 然后分别向上下左右分别发送一个水滴
如果水滴碰到一个有水的格子就会进入
否则水滴会移动到边界后消失
如果进入到格子水滴数也超过4个 会触发连锁反应 该格子也会扩散
给定初始状态 和 玩家操作 求最后水滴分布情况
这里保证玩家不会把水滴放在空格子上
提示
这里如果直接用邻接矩阵保存水滴数量,遍历操作会导致时间复杂度超过限制
可以记录每个水滴上下左右第一个水滴的位置 扩散时根据规则模拟 并在每次操作后维护
输入
第一行四个整数
n
,
m
,
c
,
T
n, m, c, T
n,m,c,T
接下来
c
c
c 行,每行三个整数
x
i
,
y
i
,
a
i
x_i, y_i, a_i
xi,yi,ai, 表示在第
x
i
x_i
xi 行
y
i
y_i
yi 列有
a
i
a_i
ai 个水滴
接下来
T
T
T 行,每行两个整数
u
i
,
v
i
u_i, v_i
ui,vi, 表示在 第
u
i
u_i
ui 行
v
i
v_i
vi 列上放置
1
1
1 个水滴
输出
前
T
T
T 行 每行一个整数, 第
i
i
i 行表示在第
i
i
i 次操作后扩散的水滴数
若没有扩散 输出
0
0
0
最后若干行 表示棋盘上水滴的分布情况 由上至下,由左至右,每行三个正整数表示 行号,列号,水滴数
核心思想: 数据结构的维护,机制的实现,考虑边界
花了 40min 写完 测试下样例通过
结果测试数据搞不定
最后老师说测试数据错了哈哈 提交了个代码文件给网研办
这时考虑到很多同学第一题都没写出来 且有一位同学花费很多时间在第二题上 老师说再加1个h
第三题:Phi 的游戏
题目描述
φ
φ
φ 的游戏 Phigames 双人游戏
每局游戏由任意的一个正整数
N
N
N 开始 两人轮流对当前数字进行操作
轮到其中任意一方进行操作时,玩家有以下三种选择:
(1)喊"
φ
:
1
!
φ :1!
φ:1!" 并将当前的数字
n
n
n 变为
φ
(
n
)
φ(n)
φ(n)
(2)喊"
φ
:
2
!
φ :2!
φ:2!" 并将当前的数字
n
n
n 变为
φ
(
2
n
)
φ(2n)
φ(2n)
(3)喊"
φ
:
K
!
φ :K!
φ:K!" 并将当前的数字
n
n
n 变为
φ
(
n
−
K
)
φ(n-K)
φ(n−K),其中
K
K
K 是一个双方在游戏开始前约定好的数
其中
φ
(
n
)
φ(n)
φ(n) 表示的是在 1 到
n
n
n 这
n
n
n 个正整数中,有多少个正整数与
n
n
n 互质,如
φ
(
1
)
=
1
φ(1) = 1
φ(1)=1,
φ
(
4
)
=
2
φ(4) = 2
φ(4)=2,
φ
(
10
)
=
4
φ(10) = 4
φ(10)=4
所以如果选择第(3)中操作, 需要保证
n
>
K
n>K
n>K
两名玩家在操作后,如果谁得到了之前出现的数字,谁就输掉了本局游戏。
例如:如果玩家对当前数字 1 选择了(1)操作,由于φ(1) = 1是出现过的数字,因此该玩家输掉了本局游戏
存在先手或后手必胜策略,只需要指定一个
K
K
K 和最开始的数字
N
N
N
对于某个确定的
K
K
K, 以
N
N
N 开始游戏时有先手必胜策略,则称这个
N
N
N 为先手必胜态。 否则,
N
N
N 为后手必胜态
为了使该游戏更有趣,对游戏进行了扩展
(1)玩家指定
K
K
K, 并选择了两个正整数
L
,
R
L, R
L,R, 由系统在
[
L
,
R
]
[L, R]
[L,R] 中的先手必胜态中随机挑选一个
r
r
r 作为右端点
(2)后手选择一个正整数左端点
l
l
l,保证
l
≤
r
l≤r
l≤r
(3)开始一局游戏时,系统从
[
l
,
r
]
[l, r]
[l,r] 中等概率挑选一个正整数
N
N
N,作为游戏开始时由先手操作的数字
任务
给定参数
L
,
R
,
K
L, R, K
L,R,K 求后手对于任意的
r
r
r 能选出最优的
l
l
l 使得后手胜率最大时,先手的平均胜率。
输入
三个正整数
L
,
R
,
K
L, R, K
L,R,K
这里保证
L
≤
R
L≤R
L≤R 且在
[
L
,
R
]
[L, R]
[L,R] 中至少存在一个先手必胜态
输出
输出一个实数 先手平均胜率
答案
a
a
a 和 你的输出
b
b
b, 只有
∣
a
−
b
∣
<
1
0
−
6
|a-b| < 10^{-6}
∣a−b∣<10−6 时输出正确
很难最后没写出来
卡在如何确定先手必胜态
面试
综合面试 (5%)
大约 5-10 min 3个老师
非常轻松和愉快
老师问一些生活上的问题
然后从简历上挑了一段实践和科研经历进行了英文提问
(简历上的东西都有可能成为提问的内容)
专业面试 (85%)
大约 12-15 min 很多很多老师
准备一个3-5分钟的 PPT 介绍(尽量讲够 5 min)
我叙述的顺序是这样:
- 自我介绍(教育背景 奖学金 知识结构)
- 科研经历(重点讲)
- 竞赛获奖
- 实践活动(老师一般不care,放到最后提几句)
提问环节
有科研经历的,一般都会问的比较多
因为我有三个项目经历,老师基本上全问我这些项目内容了
没有的话,老师会问竞赛含金量一些问题
面试结果
面试结束后一天的下午,就拿到拟录取的offer啦
Choice
夏令营已经拿到 复交 和 计算所的offer了
纠结了下,毅然选择投身于 网络安全 这个我未曾涉猎的领域
这个选择也有部分是为了弥补我高考时的遗憾吧
结语
基本上只要你准备充分,没有什么问住的,就能顺利通过面试啦
预推免初审会筛掉大部分的简历,因为网研院名额真的非常少,而且只有9月预推免才会发offer
因此提前联系老师或者和去实验室提前完成一些科研任务是很重要滴
最后用一句诗词和大家共勉
乘风破浪终有时,直挂云帆济沧海
祝大家都有个光明的未来!