文章目录
1、个人经历
1.1、一战
作者本人本科双非普本,22级毕业生,2022年一战武汉理工大学专硕,考22408,总分377,排名16,政治73,英语56,数学130,专业课118,武理专硕统招名额有五十多,理论上这分数基本没有问题,然而却因为卡武理英语60分的单科线无缘复试,后续也参与了调剂,不过专硕调剂高分遍地是,最后只有新疆大学软件学院收了我,因为离家太远,综合考虑,还是婉拒了,不过很谢谢新疆大学给了我参加复试的机会,让我在那段低谷的日子里增强了一点信心。因为不甘心和未来对于职业的规划我还是决定了二战。
1.2、二战
决定二战后,我选择毕业后租房在老校区内,去图书馆复习,吸取了去年英语卡线的教训,我二战最终选择了华东师范大学计算机学硕,考11408,因为没有单科线,这也是一个无比正确的选择。由于考试带病在阳性考场考试、基础差、复习不到位以及试题变难等因素,导致英语一38分,正好踩着在国家线,出成绩前一度觉得自己过不了国家线,政治56,数学131,专业课126,总分351,初试排名第17(招收17+2中法联培),初始成绩吊车尾,因为2022年的录取最低分358,而且在复试分数线出来之前我都不知道排名,以为今年也无缘上岸了,边找工作边准备复试,然而今年分数线降了十几分,幸运女神拉了我一把,最后复试超常发挥,复试成绩第5,总成绩第6。
1.3、心态
经历了两年的考研,对于考研,有太多的苦与甜,送给考研的学弟学妹一句话,上岸了值得高兴,没上岸,也不要悲伤,继续努力,总会有好运降临,不要功利性的比较,只要朝着进步的方向努力就好了。
第一年的时候,我觉得我理应上岸,这样的分数,这样的排名,都是好的方向,但现实给我沉重一击,学校从不会在意我一个被刷的高分,只会按其自己的方式择优,就像去年分数很高,武汉理工为了不让总分分数线太高,所以在单科线卡了许多人,今年因为疫情,考生分数相对降低了,武汉理工则又将英语单科线降至55。
今年,我把姿态放得很低,复试前已经做好了心理准备,提前找好了工作,没有后顾之忧后,全力备战复试,因为我相信只要能进复试就有机会,复试逆袭的例子我见证过太多了,今年我面对复试,我抱着放手一搏的心态,大不了失败就回去先工作去,第一天晚上机试满分,给了我极大鼓励,第二天上午面完试就去上海各处玩去了。
给后面学弟学妹们些建议,考研及其考验心态,不要因为初试高就大意,高分被刷的例子不在少数,也不要因为分数低而气馁,在考研这个战场上,只要进了复试就有机会,只要不放弃,一切皆有可能。即便最后考研失败,也不要自我怀疑,你能坚持到这一刻已经很不容易了,继续努力,饭还是要吃,觉还是要睡,生活还是要继续,今年上岸率这么低,考研这条路上可变因素太多了,有时候不是只要努力就能上岸的,人生不是只有考研一条路,我很多二战没考上的朋友也基本上都找到了相对较满意的工作。
2、初试
对于初试方面虽然我考得不是特别好,但也分享分享我的学习经历,大家有选择性了吸取,毕竟方法多种多样,找到适合自己的才是最好的。
2.1、政治
一战时,我前期学习看的徐涛的课,做的肖秀荣的1000题,由于我学习政治散漫,每天就看一个多小时的课,从六月份开始,直到十月份才结束,后期看的腿姐的技巧班,然后在小程序上刷题,刷各个老师的选择模拟题,然后找对应的不足,重刷1000题的对应章节。对于大题,直接是在最后三周背肖四,最后我一战政治成绩考了72。
二战时,由于前一年的基础,我学习政治更加散漫了,直接十月份开始看腿姐技巧班,看了一半觉得跟去年一样,干脆不看,去小程序刷题,然后大题就背背肖四,可能由于这不充分的准备,以及疫情的原因,再加上上海压分,导致这次政治只有56。不过最主要还是自身准备不充分吧
2.2、英语
英语我呢没啥可说了,努力学习两年了,到考试就差得不行,一战时考前用墨墨测词汇量只有四五千,英语二考了56,无缘复试,离谱的是考研前的六级考试我居然过了,第二年,我疯狂背单词,练习阅读,一天学习英语2~4小时,然而一上考场就不行,做阅读的时候第一篇没看懂,心态就有些崩,然后接着第二篇也读不懂,就心态爆炸了,感觉完了完了,最后四篇阅读全是瞎蒙的。真是能过国家线都走大运了。看到我这英语分数,我都不敢想象最后能上岸。
2.3、数学
对于考研数学的学习,我主要是自己研习教材,辅助考研老师的讲义,比如张宇十八讲,一步一步完成所有定义的理解,所有公式的推导,这个算比较花时间的,不过如果能够做到的话提升特别大,比较适合数学基础好以及学习能力强的同学,如果数学学习吃力的话还是建议看考研老师的课。
然后数学最重要的还是多练习,多刷题,我第一年刷的是汤家凤的1800和张宇的1000题,第二年刷的武忠祥的660和张宇的1000,个人建议不要选择1800,因为题目偏简单,且题量大,十分耗时,我一战时整整写了三个月。
最后就是刷套卷,建议这一步要早一点开始,刚开始时频率不要太快,可以四五天一张卷子,然后每做一套卷子,就要发现自己哪里不足,什么公式不记得了等等,然后去复习,并同时做练习题,刚开始分数低十分正常,只要把不会做的题去弄懂才是最重要的。随着错误减少可以增加刷套卷的频率,到最后冲刺的时候一两天一套卷子,一直保持到考研。
2.4、408
专业课的学习我是使用王道的教材以及看王道的课来进行学习的,在看课时对知识点进行理解,然后通过后面的练习题进行巩固,对错题进行研究可以加深对知识点的理解。大题可以看也可以看王道的课来学习,最后做真题的时候要严格模拟考试,因为408真题数量太少了,模拟题质量都不太好,所以十几套真题卷子要好好珍惜,每做完一套,就研究错题,复习该套卷子一些不牢固的知识点。建议真题卷子要在十月份中旬开始做,因为刚开始做卷子时,会有很多知识点忘记的问题,这样就需要去复习对应章节的知识点,一套卷子可能需要四五天才能把其中的知识点复习到位。
3、复试
2023年的复试是格外的刺激,第一次改为五五开,也就是初试满分500分,复试满分500分,总分取平均分,按总分从高到低录取,其中复试500分中机试200分,英语面试100分,综合面试200分。下面逐个分析:
3.1、机试
机试网站:华师机试网站(有一些2017,2018年的复试题是可以做的,近几年的都不公开了,可以搜索到学长学姐们写的回忆版)
今年的机试题有5题,每题40分,总分200分,按照通过样例给分,时间是两个半小时,个人感觉题目难度是两道简单,两道中等,一道困难,建议机试能力强的同学来报考华师,因为机试的一道题相当于初试的40分,多做出来两道题,320分就和400分在同一起跑线了。机试能力差的同学就不建议来报考了,今年复试成绩出来后,据考研群里面的同学统计,计专被刷的最高分时398,逆袭的最低分时324,报考华师的话就得好好考量一下自己的机试能力,可以去做做力扣的周赛题,力扣周赛题相比起今年华师的机试题就少一道简单题。
我从准备初试的时候就开始每周打力扣周赛,刚开始勉强能写出两道题,到现在前三题都能够轻松写出,出初试成绩后我每天都在刷力扣,也打打codeforce,同时也刷一些往年的真题,机试的时候前三题我花了16分钟,后两题花了一个小时全部AC。最后一题我也是运气好刚好是我学过的算法,才能快速做出来,因为本科时没有系统进行ACM训练,所以做比较难的算法题还是有一些吃力。下面是机试题的回忆版。
A 数字猜想
输入一个正整数x,如果为奇数:先乘3再加1。如果为偶数:除2。直到x变为1,然后好像是计算操作了多少次
B 特殊质数
这题我不记得了,比第一题就难一点点,不过也算是简单题。
C 最小字符串
给定字符串S(全为大写字母),对任意字符,可扩展也可以不扩展,求给定字符串对应的最小字符串
扩展:如A可以扩展为AA,也可以不扩展,为A
例:
输入AC,输出AAC
输入CA,输出CA
输入AAB,输出AAAAB
思路:遍历字符串S,对每个字符,判断其后面的第一个与其不同的字符是大还是小,如果大就扩展,小则不扩招,拿字符串AACB来说,第一个A和第二个A后方第一个与其不同的字符都为C,且比A本身大,则两个A都需要扩展,而C后方的字符B比C小,则不扩展,最后一个字符不进行扩展。所以输出结果为AAAACB
#include<bits/stdc++.h>
using namespace std;
int main() {
string s;
string res = "";
cin >> s;
int n = s.length();
for (int i = 0; i < n; i++) { //遍历每个字符
bool flag = false;
for (int j = i + 1; j < n; j++) { //查找后方第一个与S[i]不同的字符
if (s[i] < s[j]) {
flag = true; // 大则扩展
break;
}
else if (s[i] > s[j]) break;
}
res += s[i];
if (flag) res += s[i];
}
cout << res;
return 0;
}
D 数字排序
给n个字符串,这些字符串表示数字,对数字按从小到大排序输出(小数点前最多5位,小数点后最多9位)
输入:第一行:一个正整数n,后面n行,每行一个字符串
输出:按序输出n个字符串
输入:
4
28.334
-14.3456
5.9
1256
输出:
-14.3456
5.9
28.334
1256
思路:用结构体存储每个字符串,val表示正负,flag表示是否有小数,s1存整数部分,s2存小数部分,然后自定义排序。
#include<bits/stdc++.h>
using namespace std;
struct Num{
bool val = true; //判断正负
bool flag = false; //判断是否有小数
int s1 = 0; //整数部分
int s2 = 0; //小数部分
};
Num change(string s) { //将字符串转化为结构体
Num num;
if (s[0] == '-') num.val = false;
int len = s.length();
for (int i = 0; i < len; i++) {
if (s[i] == '.') num.flag = true;
else if (s[i] >= '0' && s[i] <= '9') {
if (!num.flag) num.s1 = num.s1 * 10 + s[i] - '0';
else num.s2 = num.s2 * 10 + s[i] - '0';
}
}
return num;
}
bool cmp(Num n1, Num n2) { //自定义排序
if (n1.val != n2.val) {
return n2.val;
}
else {
if (n1.s1 != n2.s1) {
if (n1.val) {
return n1.s1 < n2.s1;
}
else return n2.s1 < n1.s1;
}
else {
if (n1.val) {
return n1.s2 < n2.s2;
}
else return n2.s2 < n1.s2;
}
}
}
int main() {
int n;
cin >> n;
string s;
vector<Num> list;
for (int i = 0; i < n; i++) { //输入字符串并转化
cin >> s;
list.push_back(change(s));
}
sort(list.begin(), list.end(), cmp); //根据自定义排序
for (int i = 0; i < n; i++) { //输出
if (!list[i].val) cout << '-';
cout << list[i].s1;
if(list[i].flag) cout << '.' << list[i].s2 << endl;
}
return 0;
}
E 整数分解
给一个正整数n,求将其分解为若干个素数之和的方案数。(1<=n<=1000)
比如7,有三种方案:
(1)7
(2)5+2
(3)3+2+2
思路:看似整数n很小,最大为1000,但其方案数结果算出来只能用长整数存放。这题我的思路是进行深搜,定义一个长宽为1001数组
d
p
dp
dp,
d
p
[
i
]
[
j
]
dp[i][j]
dp[i][j]表示整数
i
i
i分解成不大于
j
j
j的素数的方案数,最后需要输出的结果即为
d
p
[
n
]
[
n
]
dp[n][n]
dp[n][n],深搜函数
d
f
s
(
n
,
d
)
dfs(n,d)
dfs(n,d)会遍历小于等于
d
d
d的素数,对所有不小于
d
d
d的素数
i
i
i,
d
f
s
(
n
−
i
,
m
i
n
(
n
−
i
,
i
)
)
dfs(n-i,min(n-i,i))
dfs(n−i,min(n−i,i))的累加和即为需要返回的结果。但由于有很多重复的计算,就用
d
p
[
n
]
[
d
]
dp[n][d]
dp[n][d]记录下来,可以缩短时间,才能通过所有样例。(记忆化搜索的算法还正好是考前几周学习的开心消消乐)
(开心消消乐是2017年的推免复试题)
d
f
s
(
n
,
d
)
=
∑
i
=
2
(
i
为素数
)
d
d
f
s
(
n
−
i
,
m
i
n
(
n
−
i
,
i
)
)
dfs(n,d)=\sum_{i=2(i为素数)} ^ {d}{dfs(n-i,min(n-i,i))}
dfs(n,d)=i=2(i为素数)∑ddfs(n−i,min(n−i,i))
#include<bits/stdc++.h>
using namespace std;
vector<vector<long long>> dp;
bool check(int x) { //判断是否素数
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) return false;
}
return true;
}
long long dfs(int n, int d) {
long long res = 0;
if (n == 0) return 1; //n=0表示搜索出一个方案
if (n == 1) return 0; //n=1表示当前方案无效
for (int i = d; i >= 2; i--) {
if (check(i)) { //判断i是否素数,如是,求出以i为最大素数的方案数,所有素数对应方案数的累加即为返回的结果
if (dp[n - i][min(n - i, i)] != -1) res += dp[n - i][min(n - i, i)];
else res += dfs(n - i, min(n - i, i));
}
}
dp[n][d] = res; //记录在dp中,后续有重复计算的时候可以缩短时间。
return res;
}
int main() {
int n;
cin >> n;
dp = vector<vector<long long>>(1001, vector <long long>(1001, -1));
cout << dfs(n, n);
return 0;
}
3.2、英语面试
英语面试包含英语自我介绍,英语问答,和文献翻译。
自我介绍要背得足够熟,形成肌肉记忆的那种,因为复试的时候会处于极度紧张的状态,不够熟的话容易出现卡顿,一旦卡顿如果心态不好的话估计就会大脑一片空白了,英语面试是和综合面试一起进行的,面试的5个老师中,有一个老师可能是专业英语老师,因为整个英语面试都是那一个老师安排问答。
我被问到的两个英语问题:
1、What research direction do you expect to pursue during your graduate studies?
2、What projects have you worked on that are related to this research direction?
然后英语翻译是阅读一段对话,翻译前两句话,我的是计算机视觉相关的内容。我没有听懂只翻译前两句话,一路往下翻译,被打断老师打断感觉老尴尬了。
3.3、综合面试
综合面试首先抽取小卡片,每张卡片上有两道专业问题:
我的问题:
1、计算机视觉有哪些任务?
第二个我不记得了,因为我连那个专业词都没见过,也不知道什么领域的,不过听其他参加复试的说,可以选择再抽一次。如果运气不好两道都不会,就选择重抽吧。
答完专业问题后就是随机问答了。我记得的问题如下:
1、你成绩单上本科统计学成绩比较差,可以解释一下吗?
2、你对chatGPT有什么看法?
3、你一战考的哪个学校,考了多少?
4、如果你今年没上岸,你计划怎么办?(这个问题我感觉好常见,很多经验贴上都有)
5、你简单介绍一下你的毕业设计。然后在毕业设计上展开了一系列提问(毕业设计要好好做,华师好像比较重视)
6、你想要在研究生阶段,进行什么方向的研究?
(感觉老师好像不知道我的初试成绩,因为老师没有对我的英语38分做出提问,我的英语成绩放在整个学院的考研成绩中都是相当炸裂的存在,没人能比我更低,我最怕的事情没有发生哈哈)