北京师范大学人工智能学院夏令营总结
背景介绍
入营情况
两次夏令营都报名了,第一批没有过,之前听说只让985的学生通过,但是我后面发现也有些其他省份的211进入第一批,挺无语的hhh,这里点名北交,一个211学校也没有让我入营,给老师发邮件甚至也没有回信...
第二批的时间是在8.24-8.26,第一天8.24进行报道入住学校,具体环境可以看我的抖音账号(carrynotkarry),那三天的食宿我都记录下来了哈哈哈。入营的两百多人一共分成五组,第一组和第二组的近100人是25号机试、26号面试,而后三组则是25号面试、26号机试。
话说想要知道我的bg?进入到我的博客应该都对我有所了解了吧哈哈,有机会写在另一个文章里吧,这里就写夏令营的感受。
8.24 报道
中午吃完饭直接坐昌平线前往沙河高教园地铁站,然后打滴滴前往学校,其实学校离地铁站挺远的,大概有3km了吧,所以地铁站旁边有很多的共享单车和电动车。然后从北门进入,到住的地方提交身份证等资料就可以入住,我是跟我好兄弟一起入营,可以在备注要求和某人一起住宿也是可以的。
晚上逛一逛校园,这些都可以在视频中看到噢
8.25 宣讲
上午吃完饭之后前往一个会议厅进行听开营仪式,其实就是各个团队介绍自己团队是做什么的,一共大概是六七个团队,本来官网上还有介绍的,不过官网又把文章删掉了。印象最深刻的是第一个出场的团队,院长黄华的团队,一周需要工作40个小时,也就是五天全满课那种,然后论文怎么怎么样。其中分享了他们团队招生说明的网站北京师范大学智能媒体计算实验室 (bnu.edu.cn),让我印象最深刻的还有这段话:
我们希望团队的成员身心健康,具备踏实、乐观、积极主动、有梦想、有韧性、不自私等优良品质。希望学生喜欢思考,愿意追求卓越,期望通过自身努力实现梦想。宁当韭菜,不可躺平;在坚持中寻找希望,而不是看到了希望才去坚持。所以,如果您没有高远的人生目标甚至仅仅是想混学位,请您不要进入我们团队,否则我们双方都会很痛苦。
8.25 机试
下午进行的则是机试,时间大概是两个小时,一共四个题,赛制是拥有罚时的IOI赛制,罚时是20min,有部分点的分数,所以还是需要尽量把分数提上去。我最后的成绩是第二名(367/400),第一名也是同样的分数,罚时比我少。
第一题·回文质数
题目链接 P1217 回文质数 Prime Palindromes - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
这个题我一开始想着是否需要一个素数筛,后面算了算发现暴力是差不多的,就稍微加了一点优化暴力过去了,优化指的是比如2结尾的数字是不可以的(2除外),但是应该是不需要优化也可以的,毕竟是签到题。
第二题·产生数
题目链接 P1037 NOIP2002 普及组 产生数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
给你一个数字$n=234$,其中有$k=2$种规则,规则是$2\rightarrow 5$和$3\rightarrow 6$,那么这个数字可以变成$234,534,264,564$四种可能。问给出$n,k$最后能有多少种可能的数字。
思路:我们想以前学过的组合数学里面的乘法规则,也就是比如Carry明天要出去约会,上衣有3种衣服,裤子有4条裤子,鞋子有5双鞋子,请问明天最多有多少种情况?那么答案就是$3\times 4\times 5=60$种可能。
那么这个题也是一样的,我们对于$n$看成不同的位数,例如给你一个五位数$13568$我们可以看成五位$\underline{a_1}\quad\underline{a_2}\quad\underline{a_3}\quad\underline{a_4}\quad\underline{a_5}$,然后对每一位进行分析看看那一位能够拓展成多少个其他的,为什么这么说?因为给出的规则可能是传递的,例如:$2\rightarrow 4, 4\rightarrow 5,5\rightarrow 3$,所以2能够到达4、5、3一共包括自己的4种数字,注意这个需要10位的标记数组来标记。
因为最多一共才10个数字,所以我们可以通过dfs一样的进行递归标记,所以我们能够得到当前位$a_i$能够拓展成$x_i$位(包括自身),所以答案就是$\prod_{i}x_i$,我该题wa了两罚,我最后使用__int128
才过了
第三题·数列
题目链接 P1062 NOIP2006 普及组 数列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
给定一个正整数 $k$($3\leq k\leq 15$),把所有 $k$ 的方幂及所有有限个互不相等的 $k$ 的方幂之和构成一个递增的序列,例如,当 $k = 3$ 时,这个序列是:
$1, 3, 4, 9, 10, 12, 13, \ldots$
(该序列实际上就是:$3^0,3^1,3^0+3^1,3^2,3^0+3^2,3^1+3^2,3^0+3^1+3^2,…$)
请你求出这个序列的第 $N$ 项的值,用 $10$ 进制数表示。
例如,对于 $k = 3$,$N = 100$,正确答案应该是 $981$。
思路:这个题看起来有点难,实际上还是很简单的,我们可以手推几列,像一个数塔一样,首先最小的数字肯定是
$$
k^0
$$
第一行就只有一个数字,第二行则需要加入$k^1$进来了,那么前两行则是:
$$
\underline{k^0}\newline
k^1\quad \underline{k^1+k^0}
$$
还看不出规律,我们再写第三行出来,加入$k^2$:
$$
k^0\newline
\underline{k^1\quad k^1+k^0}\newline
k^2\quad k^2+k^0\quad \underline{k^2+k^1\quad k^2+k^1+k^0}
$$
还看不出?我们再写一行就好啦!加入$k^3$:
$$
k^0\newline
k^1\quad k^1+k^0\newline
\underline{k^2\quad k^2+k^0\quad k^2+k^1\quad k^2+k^1+k^0}\newline
k^3\quad k^3+k^0\quad k^3+k^1\quad k^3+k^1+k^0\quad \underline{k^3+k^2\quad k^3+k^2+k^0\quad k^3+k^2+k^1\quad k^3+k^2+k^1+k^0}
$$
注意我划下划线的地方,每次都是第$i$行的后$2^{i-1}$个数字,每次都是在上一行的基础上加上$k^i$,例如上面两行下划线区别就是加上了$k^3$,其他不变。
进一步来看,如何计算贡献?如果在第i行的后半段,那么就需要加上$k^{i-1}$,例如如果我们需要求第$13$大,也就是上方的$k^3+k^2+k^0$,所以我们首先判断它是在第三行,那么肯定有$k^3$的贡献,其次我们需要递归/往上走,发现在该行的后半段,减去该层的个数$8$,那么发现还剩下$5$(会发现就是第三层的$k^2+k^0$),发现在第三行,所以需要加上贡献$k^2$,再减去该行的行数($4$),还剩下$1$,此时就是$k^0$了,所以答案就是$k^3+k^2+k^0$。
其实我们能够发现,就是对第$n$位进行二进制分解,例如上方的$13$的二进制就是$1101$,那么对应位如果是$1$的话则需要加上该位的权值。
代码:
#include <bits/stdc++.h>
#define int long long
using namespace std;
int p[11], k, n, ans;
signed main() {
cin >> k >> n;
p[0] = 1;
for (int i = 1; i <= 10; i++) {
p[i] = p[i - 1] * k;
}// 当前位的权值
for (int i = 0; i < 10; i++) {
if (n >> i & 1) {
ans += p[i];// 计算贡献
}
}
cout << ans;
}
第四题·神经网络
P1038 NOIP2003 提高组 神经网络 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
这里模拟了神经网络的过程,每个点都有权值,然后对下一层进行贡献,只有当该点之前的所有点都造成影响之后再计算是否超过阈值,超过就是兴奋可以对下一层进行贡献。所以这里我们想到的就是拓扑排序,其实我不知道为什么我和rank1都只有367分,我怀疑数据有问题哈哈哈。
这一题没有什么好讲的,就是拓扑排序,每一层进行计算就好,最后对输出层进行判断输出即可,我还是觉得我代码没问题hhh。
总结
每一组大概不到50人,做出近200分的就是十多名了,很多人还是做不出来的,所以我觉得我在机试还是有很大的优势hh,其实还是挺希望能够入第一批跟985的同学碰一碰的,可惜没有入营,最后也没有给我0812的学硕。
8.26面试
在前一天的机试之后得到了很大的信心,还有在25号晚上的小龙虾之后,得到了好兄弟在另一组的第一天面试的情况,没有问什么问题,考察了他一些英文,还有什么我忘了,我还是具体讲一下我的吧。
五个老师面试,五个同学一起面试,时长控制的20分钟,我是第三个位次:
- 首先进行的是自我介绍,我这组一共三个985的,有数学专业的,有打算法竞赛的,但是都没有什么奖,自己做过了一些科研项目我也不太懂什么水平,在竞赛方面我好像爆杀了哈哈哈哈。我记得我后面的同学说自己算法竞赛的时候还结巴了..
- 然后就是对每个人提问,都很简单的,比如问我和另外一个科班出生的学过哪些数学,大概就是四本数学书和离散还有数值分析(科学工程与计算),然后问数学专业的为什么想来学计算机
- 可能还有提问我忘记了,反正很水,然后问每个人拿了哪些offer了,不计分数,其实标准答案就是“没有”或者“本校”吧,这种最好还是不要说拿了其他学校的
经此一役,我觉得稳了hhh,但是优营出的很慢很慢
其他
说一些其他的吧,其实我挺想去北师大的,之前的队友也去了北师大,可惜那个老师没有要我,最后被鸽了来找我了,可是我已经联系好了老师了,我的导师还是很不错的。
最后给我了1405的智能科学与技术专业,很可惜并不是0812计算机科学与技术,听说最后面第二批候补50名(第二批40优营60候补)补到了0812,可是这种事情不是我能做的,我不敢做十拿九稳的事情..一般是做十拿十稳的事情...心慌..
在929填系统前一天晚上928的近6点才打电话给我,确定拟录取,这让人很是着急,我还杀到了学校招生办门口还是告诉我需要等。
我想说的话很多,比如,平台很重要,985就是爷,我这个211就是菜,人家只需要985这个bg就可以入第一批,还有本校的,可以轻而易举比我更容易拿到offer,这让我很是emo
文章评论