N 诺考研系列
计算机考研机试攻略
满分篇
N 诺课程教研团队
2020.03.06 更新
N 诺,数百万大学生都在使用的免费在线学习平台
写在前面的话
相信各位同学都知道,N 诺是一个大佬云集的平台。N 诺每周都会定期举办比赛,让同学
们在日复一日的枯燥生活中找到一种乐趣。
本书是 N 诺专为计算机考研的同学精心准备的一本神书,为什么说它是一本神书,它到底
神在什么地方?
1、这本书是 N 诺邀请众多 CSP 大佬、ACM 大佬、BAT 专业大佬以及往年机试高分大佬共同修订
而成。
2、这本书与市面上的书都不一样,这是一本专门针对计算机考研机试而精心编写而成的书籍。
3、这本书上的例题讲解以及习题都可以在 N 诺上找到进行练习,并且每道题都有大佬们发布
的题解可以学习。
4、N 诺有自己的官方群,群里大佬遍地走,遇到问题在群里可以随时提问。群里神仙很多,
不怕没有问题,就怕问题太简单。
相信同学们一定听过各种各样的 OJ 平台,但是那些平台不是为了计算机考研而准备的,
而 N 诺是唯一一个纯粹为计算机考研而准备的学习平台。
相信每一个同学在学习本书之前,都觉得机试是一个很头疼的问题,机试有可能速成吗?
我可以一周就变得很强吗?我们可以在短短两三周之内的学习就能拿到机试高分吗?
别人可不可以我不知道,但是在 N 诺这里,你就可以。
N 诺,数百万大学生都在使用的免费在线学习平台
虽然考研机试题目千千万,但是你可以“一招鲜,吃遍天”。
管它乱七八糟的排序,我就一个 sort 你能拿我怎么办?
管它查来查去的问题,我会 map 我怕谁?
管它飘来飘去的规律,我有 OEIS 神器坐着看你秀!
管它眼观缭乱的算法,我有 N 诺万能算法模板怕过谁?
本书虽然不能让你变成一个算法高手,但是本书可以让你快速变成一个机试高手,这也是
本书最重要的特点,以解决同学们的实际需求为目的。你可以不会算法,你可以不必弄懂算法
的原理,你只要学会本书教给你的各种技巧,就足以应对 99.9%的情况。
N 诺的课程教研团队全是由大佬组成,每个人都做过几千道编程题目,做编程题的经验十
分丰富,我们分析近百所院校的历年机试真题,从中发现了各个学校的机试真题都有相同的规
律,万变不离其中,于是本书也就诞生了。
计算机考研机试攻略交流群请扫描下方二维码或直接搜索群号:960036920
本书配套精讲视频:https://www.bilibili.com/video/av91373687
N 诺,数百万大学生都在使用的免费在线学习平台
关于 N 诺
N 诺是全国最大的计算机考研在线学习平台。N 诺致力于为同学们提供一个良好的网络学
习环境,一个与大佬们随时随地交流的舒适空间。如果你不知道 N 诺,那么你已经输在起跑线
上了,因为 N 诺是 - 计算机学习考研必备神器。
N 诺整理了计算机考研报考指南,帮助你了解考研的点点滴滴赢在起跑线上。
http://www.noobdream.com/media/upload/2020/01/29/guide.pdf
在 N 诺,你可以查询各个院校的考研信息,包括分数线、录取人数、考试大纲、导师信息、
经验交流等信息,应有尽有。
http://www.noobdream.com/schoollist/
在 N 诺,你可以尽情的刷各个科目的题库,还可以将题目加入错题本方便以后复习,也可
以写下自己的学习笔记,记录考研过程中跌宕起伏。
http://www.noobdream.com/Practice/index/
在 N 诺,你可以在讨论区里发表你的问题或感想,与全国几百万考研 er 分享你的喜怒哀
乐。
http://www.noobdream.com/forum/0/
在 N 诺,你可以将你不用的书籍或资料放到二手交易市场,既能帮助他人,还能为自己省
下一笔当初买书买资料的费用。
http://www.noobdream.com/Task/tasklist/
N 诺,数百万大学生都在使用的免费在线学习平台
如何使用本书?
访问 N 诺平台(www.noobdream.com)的历年真题,即可查询到全国各个学校的历年机试
真题。
如下图输入课后习题的编号即可搜索到题目
小技巧:N 诺是可以随意更换皮肤的哟,在右上角头像旁边。
N 诺,数百万大学生都在使用的免费在线学习平台
目录
写在前面的话.................................................................................................................................2
关于 N 诺.........................................................................................................................................4
如何使用本书?.............................................................................................................................5
目录.................................................................................................................................................6
第一章 技巧之巅...........................................................................................................................7
1.1 输入输出加速外挂............................................................................................................8
1.2 调试技巧.........................................................................................................................10
1.3 位运算技巧.....................................................................................................................12
1.4 考试最佳策略.................................................................................................................16
1.5 预处理与打表技巧.........................................................................................................18
1.6 对数器技巧.....................................................................................................................21
第二章 满分之路上.....................................................................................................................24
2.1 计算几何基础.................................................................................................................25
2.2 进阶背包问题.................................................................................................................32
2.3 毛毛虫算法.....................................................................................................................36
2.4 博弈类问题.....................................................................................................................38
2.5 路径进阶问题.................................................................................................................80
2.6 二分答案技巧.................................................................................................................48
2.7 前缀和技巧.....................................................................................................................51
第三章 满分之路中.....................................................................................................................54
3.1 线段树单点更新.............................................................................................................55
3.2 线段树区间更新.............................................................................................................61
3.3 线段树的应用 ...............................................................................................................68
3.5 字符串匹配问题.............................................................................................................75
3.6 图的连通性问题................................................................................. 错误!未定义书签。
3.7 二分图的匹配问题.........................................................................................................76
3.8 带状态压缩的搜索..........................................................................................................89
第四章 满分之路下.....................................................................................................................87
4.1 容斥与抽屉原理.............................................................................................................88
4.2 除法取模问题.................................................................................................................88
4.3 组合数取模类问题.........................................................................................................88
4.4 欧拉降幂............................................................................................. 错误!未定义书签。
4.5 矩阵快速幂.....................................................................................................................89
4.6 区间类型动态规划............................................................................. 错误!未定义书签。
4.7 数位类型动态规划.........................................................................................................89
4.8 树上的动态规划................................................................................. 错误!未定义书签。
4.9 平衡二叉树的问题.............................................................................. 错误!未定义书签。
完结撒花.......................................................................................................................................90
N 诺考研系列图书........................................................................................................................92
N 诺网校招募令............................................................................................................................93
N 诺,数百万大学生都在使用的免费在线学习平台
第一章 技巧之巅
建议大家在阅读本书之前先阅读本书的姊妹篇:计算机考研机试攻略 - 高分篇。
这本书是高分篇的加强版,适合学习完高分篇的同学继续学习,拿到机试满分。
本章是 N 诺计算机考研机试攻略满分篇的第一章,本章我们带领大家领略技巧的极致魅
力。本章包括:输入输出加速外挂、调试技巧、位运算技巧、考试最佳策略、预处理与打表技
巧、对数器技巧等内容。可以帮助读者迅速掌握一些使用的考试技巧,完成更高难度的挑战。
本书配套视频精讲:https://www.bilibili.com/video/av91373687
N 诺,数百万大学生都在使用的免费在线学习平台
1.1 输入输出加速外挂
有的时候题目的输入数据量比较大,比如要输入 10W 和数字进行排序。这个时候,如果你
直接使用 C++的 cin 和 cout 函数进行输入输出,有很大的概率会超出题目的时间限制。
在这种情况下,需要的优化的就不再是你的算法过程,而是你的读写数据的速度优化。
如果使用 cin 和 cout 函数进行输入输出,我们建议你在 main()里首先写入下面两行代码。
C++ cin/cout 加速
1.
2.
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
如果题目的输入量巨大,比如要输入 100W 个数字,这个时候我们建议你使用 C 语言的 scanf
和 printf 语句进行输入输出。
如果在这种情况下还超时,那么你就需要用到下面的输入输出加速外挂了。
//适用于正负整数
template
inline bool scan_d(T &ret) {
char c; int sgn;
if(c=getchar(),c==EOF) return 0; //EOF
while(c!='-'&&(c<'0'||c>'9')) c=getchar();
sgn=(c=='-')?-1:1;
ret=(c=='-')?0:(c-'0');
while(c=getchar(),c>='0'&&c<='9') ret=ret*10+(c-'0');
ret*=sgn;
return 1;
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12. }
13. inline void out(int x) {
14.
15.
16. }
if(x>9) out(x/10);
putchar(x%10+'0');
N 诺,数百万大学生都在使用的免费在线学习平台