前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2021年CS保研经历(一):北邮CS夏令营、北师大AI夏令营、天津大学CS夏令营

2021年CS保研经历(一):北邮CS夏令营、北师大AI夏令营、天津大学CS夏令营

作者头像
Cyril-KI
发布2022-07-29 09:19:06
5980
发布2022-07-29 09:19:06
举报
文章被收录于专栏:KI的算法杂记

写在前面

  还是打算记录一下我曲折的保研经历!也希望可以帮助到后面的CS保研人。

  凡是过往,皆为序章!无论有没有去到自己想去的学校,无论有没有拿到自己满意的研究方向的offer,结果都已经注定,我们只能从新的起点出发,继续在其他地方发光发热!

个人情况

学校: 北京某末流211

专业: 计算机科学与技术 (学科评估等级不太理想)

排名: 夏令营2/64,预推免2/64

英语: 六级470(夏令营434)

获奖: 国家奖学金X1、蓝桥杯和国赛建模省赛划水奖项、MathorCup高校数学建模二等奖、物理竞赛划水奖项,以及其他一些小的程序设计大赛的奖项,不值一提。

科研: 一篇中文EI(一作)、一个国家级大创(负责人,有自己开发的一个已经上线的APP),此外还参与了一些实验室跟国网合作的项目(做过一些算法和系统开发)。

01

北邮计算机学院(7.7)

  时间太久远了,没记错的话应该是7.3,一个老师打电话给我让我加她微信,然后通知我入营了,并且告知了一些注意事项,注意事项如下:

各位同学好,恭喜大家入围北邮计算机学院大数据科学与服务中心大数据组夏令营!拟在7月7日,下午1点,开展研究生保研线上机试/面试,请各位同学准备好电脑(需要配置好自己熟悉的一种编程环境,python,java,c,c++均可),配置好腾讯会议软件,参与线上考核,线上考核需要打开摄像头。考核分两个环节,机试和面试,机试45分钟。机试过后,择优进入面试环节,线上会议室信息会后续通知,收到请回复,是否参加。

  6号下午相关老师给我发了一篇关于node2vec的论文:node2vec: Scalable Feature Learning for Networks(时间真的紧张!!),然后告诉我面试时会根据这篇论文进行提问。

  于是6号晚上和7号上午疯狂查阅各种资料,最后还想了想老师会从哪些方面进行提问。

1.机考

  北邮计算机学院夏令营各个组的情况不同,有的组不需要机考,我报名的2组是需要机考的。机考一共四个题,一共四十五分钟,大概会淘汰掉一半的人。如果没记错,机考题全部都是LeetCode上的原题,所以如果想要参加北邮CS2组的夏令营,可以提前刷刷力扣。

1.1 链表删除

  请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为要被删除的节点。

  现有一个链表 -- head = [4,5,1,9],它可以表示为:

  示例 1:

  输入:head = [4,5,1,9], node = 5

  输出:[4,1,9]

  解释:给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.

  思路:第一题很基础,就是个简单的链表删除问题,代码就不写了。

1.2 二叉树中和为某一值的路径

  给你二叉树的根节点 root 和一个整数目标和 targetSum,找出所有从根节点到叶子节点路径总和等于给定目标和的路径。

  叶子节点是指没有子节点的节点。

  示例 1:

  输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22   

输出:[[5,4,11,2],[5,8,4,5]]

分析:套dfs模板。

代码语言:javascript
复制
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    void dfs(vector<vector<int>>& res, vector<int>& temp, TreeNode* root, int target) {
        if(root == NULL) {
            return;
        }
        temp.push_back(root->val);
        target -= root->val;
        if(root->left == NULL && root->right == NULL && target == 0) {
            res.push_back(temp);
        }
        dfs(res, temp, root->left, target);
        dfs(res, temp, root->right, target);
        temp.pop_back();
        target += root->val;
    }
    
    vector<vector<int>> pathSum(TreeNode* root, int target) {
        vector<vector<int>> res;
        vector<int> temp;
        if(root == NULL) {
            return res;
        }
        dfs(res, temp, root, target);
        return res;
    }
};

1.3 完全平方数

  给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。

  给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。

  完全平方数是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9和16都是完全平方数,而3和11不是。

  示例 1:

  输入:n = 12   

输出:3

  解释:12 = 4 + 4 + 4

  提示:1 <= n <= 104

分析:这个题可以采用动态规划来做:设dp[n]表示和为n的最小的完全平方数的个数。因为这里有n >= 1,所以有dp[0] = 0。转移方程:

代码语言:javascript
复制
res = min(res, dp[i - j * j]);(j∈[1, sqrt(i)])
dp[i] = res + 1;

即:i与i - j * j相比,要加上一个j的平方,其完全平方数的个数要加上1。这里的j有很多个取值,我们遍历j然后取一个最小的答案即可。

代码:

代码语言:javascript
复制
class Solution {
public:
    int numSquares(int n) {
        vector<int> dp(n + 1);
        for(int i = 1; i <= n; i++) {
            int res = INT_MAX;
            for(int j = 1; j * j <= i; j++) {
                res = min(res, dp[i - j * j]);
            }
            dp[i] = res + 1;
        }
        return dp[n];
    }
};

1.4.戳气球

  (附加题) 有 n 个气球,编号为0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中。

  现在要求你戳破所有的气球。戳破第 i 个气球,你可以获得 nums[i - 1] * nums[i] * nums[i + 1] 枚硬币。这里的 i - 1 和 i + 1 代表和 i 相邻的两个气球的序号。如果 i - 1或 i + 1 超出了数组的边界,那么就当它是一个数字为 1 的气球。

  求所能获得硬币的最大数量。

  示例 1:

  输入:nums = [3,1,5,8]

  输出:167

  解释:nums = [3,1,5,8] --> [3,5,8] --> [3,8] --> [8] --> [], coins = 315 + 358 + 138 + 181 = 167

  具体请见:https://leetcode-cn.com/problems/burst-balloons/

  总结:一共四个题,前两个题难度不大,但是由于总时间只有45分钟,所以想要写完所有题几乎不可能,做出两个大概率就能进入面试。

2.面试

  机考结束时间是下午1:45,然后一直在焦急地等待着。终于,2:20时,微信上那位老师告诉我顺利进入面试,然后叫我等待她的通知,轮到我时再进入会议室。等的过程中一直挺紧张的,毕竟是参加的第一个面试。大概3:00左右,老师终于发了微信说我可以进去了。

  进去之后,首先是一个英文自我介绍,这个提前背一下就行,老师也不会太过于为难你。

  然后是一个政治提问,你怎么把你自己和中国共产党成立一百周年联系起来?这个就看临场发挥了,只要不说出反动的话就没问题。

  接下来问了几个论文里面的问题,甚至还有实验数据的问题,不过好在都回答上来了。最后一个问题是让我用英文总结下这篇文章讲了什么,当时一下懵了,没回答上来。

  面试结束后,老师问我被录取后一定会来吗?当时毕竟是第一次参加面试,一直犹犹豫豫不太敢说,还是太年轻了!最后老师也没问我啥了,就说面试结束了。

  出结果时不出意外,被刷了!!!当时心里还是挺难受的,毕竟是我面试的第一个学校。不过后面八月份的时候,北邮CS2组的一个老师找上了我并且给了我offer,这都是后话了。

02

北师大人工智能学院

  北师大人工智能学院夏令营入营难度比较大,收的人很少。北师大比较偏爱北京地区高校的学生,所以我才能进去。但是由于各种原因(跟天津大学时间冲突了),我最终选择了放弃参加面试。

  不过听我朋友说北师大的考察模式为:先机考,然后提前发一篇论文,做成PPT讲解并提问。

03

天津大学智能与计算学部(7.8-7.9)

  我是在7.2得知自己进了天大智算的夏令营。天大夏令营举办时间是8号和9号。

1.线上宣讲(7.8)

  这一天大致讲了下天大智算学部各个实验室的研究情况,然后留下了各个老师的联系方式,让各位营员确定自己感兴趣的方向。由于我本科期间做的就是数据挖掘相关的工作,因此毫不犹豫地选择了机器学习与数据挖掘实验室。

  宣讲完毕后通知面试方式是讲解PPT,于是剩下时间都在做PPT。

2.分组面试(7.9)

  天津大学计算机无论是保研还是考研,其面试都有一个很重要的环节:项目讲解。这个环节对跨专业的同学不太友好,对本科没啥项目的人也不太友好。去年考研天大智算进入复试的400分考生就被刷了十几个(去年还是哪一年?好像是刷了十几个)。

  不过好在我自认为项目经验还是丰富,应该能够应付。

  由于人很多,面试时间为两天,我被分在了9号这一天,也就是第一批面试。

  言归正传:进入面试后,我就打算开始进行PPT的演示,介绍完成绩情况后,老师直接叫我不要介绍了,说太啰嗦了。。。。我寻思着你们不是规定说三分钟吗,我这才讲了三十秒就不耐烦了。。。。叫停我后,老师直接叫我讲解一个自己拿手的项目,于是我讲了我论文的大概思路。讲完后老师问了我三个问题:

  你这个论文主要是解决了啥问题?

  数据是哪里来的?

  跟前人方法相比有多少提升呢?

  三个问题没啥难度,回答完后就结束了,看得出来面试老师很着急。。。。

3.确定优营名单+联系老师(7.14)

  7.14我收到了天大的优营通知,接着开始联系老师,老师很早之前就看好了,联系后老师回复也很快,天津大学就这么定下来了,算是有个保底的学校了。

  第一部分就先到这里吧,后面再更新其他学校。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 KI的算法杂记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 个人情况
  • 北邮计算机学院(7.7)
  • 1.机考
    • 1.1 链表删除
      • 1.2 二叉树中和为某一值的路径
        • 1.3 完全平方数
          • 即:i与i - j * j相比,要加上一个j的平方,其完全平方数的个数要加上1。这里的j有很多个取值,我们遍历j然后取一个最小的答案即可。
            • 1.4.戳气球
            • 2.面试
            • 北师大人工智能学院
            • 天津大学智能与计算学部(7.8-7.9)
            • 1.线上宣讲(7.8)
            • 2.分组面试(7.9)
            • 3.确定优营名单+联系老师(7.14)
            相关产品与服务
            腾讯会议
            腾讯会议(Tencent Meeting)为企业打造专属的会议能力,卓越的音视频性能,丰富的会议协作能力,坚实的会议安全保障,提升协作效率,满足大中小会议全场景需求。您可以使用腾讯会议进行远程音视频会议、在线协作、会管会控、会议录制、指定邀请、布局管理、同声传译等。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档