前言
10道选择
第一章-算法概述
12~13分,1-2选择,1简答
基本概念
考选择
1.算法:输入、输出、有限性、确定性
2.复杂性:
空间复杂度:不涉及太难的,只考典型的,比如dp的空间
时间复杂度:最好时间复杂度、最差时间复杂度、平均时间时间度
3.P和NP:
P:确定性计算模型定义的(多项式时间)
NP:非确定性模型定义的,有一个预言机制。(多项式时间)
P和NP相等或者不相等的说法都是错的!(注意多种说法)
P属于NP是对的!
NPC:核心部分,映射
渐进
渐进关系(几个符号):考证明(书上的6个O的性质)(7分)
数学证明掌握!
o,w用比值来证明
习题1-11重要!
第二章-递归分治
基本概念
1.递归概念:
优点:
缺点:效率低,占用较多时间空间
2.分治
代码框架(必会):
一定要有:
- 问题小到一定规模可解
- 问题可以拆解成同构的小问题
- 子问题合起来
3.求解递归(必考必考必考)(他视频里面说了三遍)
- 主方法:3种情况
- 递归树法:包含拆分代价和叶节点代价
4.根据代码判断复杂度:
- if-else
- while
- for
- 递归
具体算法
1.二分搜索:边界
2.大整数乘法:知道拆分方法
3.strassen矩阵乘法:不深入要求,利用结论即可,记结论
4.棋盘覆盖
5.最接近点对问题:伪码和递推式要串联起来!(根据伪码写出递推式,然后求解递推式!!)
6.归并排序:理解渐进最优(比较排序)(选择)
7.快速排序:重点掌握!!!!!!!!!!!!!!!!!
8.线性时间选择:重点掌握!!!!!
7、8的两种考法:
- 根据伪码求递归,求解递归
- 结合第七章的知识点进行考察
第三章-动态规划
与分治法异同
相同:拆分问题,小到一定规模可解
不同:动态规划子问题不独立,有重叠性,用空间换时间。
解题步骤
最优子结构性质(反证法)
找出递推式
边界条件
基本要素
重叠子问题
最优子结构(选择)
基本形态
动态规划
备忘录方法
例题(搞懂背熟)
拆分类:矩阵连乘、切钢管、游乐园(作业题)
移界类:最长公共子序列(背熟)、字段和问题、图像压缩、背包问题:物品数,背包容量
图像类:多段有向图(不在书上但要看)。
第四章-贪心算法
大题不好考,10-12分
概念
贪心选择性质
最优子结构性质
例题
活动安排问题
装载问题
作业的加油问题
01背包的不可行证明,给出反例即可(送分题)
相关算法
选择、简答题出
哈弗曼编码(一步一步来)
Dij
Prim(基于点)
kruskal(基于边)
第五章-回溯法
考试方法就是画个解空间树,用语言描述搜索过程,完全按照书上的方法。
框架(背熟)
必考,默写,7分!!!!!!!!!!!!!语言不限C++,JAVA均可
- 递归回溯
- 迭代回溯
- 子集树算法框架
- 排序树算法框架
基本概念
1.深度优先:三种节点:死节点、扩展节点、活结点
2.回溯法的效率:...
3.重排原理:先分还是后分。原则:靠上的分支尽量少,剪枝好!
递归回溯
图m着色问题
n后问题
迭代回溯
n后问题
子集树框架
装载问题:剩余价值估算
背包问题
(这两个算法不断优化的方法,即剪枝的过程)
(约束函数的不断进化)
排序树框架
TSP问题
圆排序问题
电路板问题
总结
四个框架
活结点,死节点,拓展节点
排序树框架的swap
子集树的剪枝
重排原理
算法分析题5-6(重点)(找出更加高效的上界函数)
第六章-分支限界法
解题也是画一个树,文字描述。区别是要有活结点列表,不过要根据题目的要求先进先出还是优先级。
这章代码不好考!!
基本概念
每个活结点只有一次机会成为拓展节点,活结点一旦成为拓展节点,就一次性产生所有儿子结点。
活结点列表(先进先出,优先级....)
关于优先级的活结点列表,即优先队列,如何放入取出的堆等数据结构无需复习。
三个重要例题
TSP
01背包
作业分配问题(搞懂)
第七章-概率算法
只出简答,选择题
关于四种算法概念一定有一道选择题
当数据量大的时候,随机投点法的模拟效果更好
跳跃表:学会时间和空间复杂度即可
拉斯维加斯算法:框架记住;了解时间的公式
n后问题:全回溯(太乐观),全随机(太悲观),回溯+随机(会考代码填空)
蒙特卡洛算法:了解基本概念,即偏真,偏假,优势...
第八章-线性规划和网络流
如果考网络流,只考网络流概念题
核心为单纯形法
一般出计算题,双变量,出小于等于约束。考试一定要用单纯形法(2~3次变化就可以做出)。不能用图解法,不过可以用图解法验证!!!!!!!!(12-13分)
基本概念
线性规划问题的基本表示(化标准型)
松弛变量...
考前大胆预测
2023-12-10 10:45 考前5h编写,仅供娱乐
我直接开始预言家模式
10道选择,一道2分,20分
5道简单,一道8分,40分
3道大题,一道13-14分,40分
选择题型如下:
1.算法概述的基本概念:P与NP,算法的特点..
2.递归的基本概念:优缺点
3.动态规划(不知道怎么考)
4.贪心(可能就是书上的题目,考察一些知识点)
5.回溯法(结点的概念,重排原理,约束函数,上界函数)
6.分支限界法(队列?)
7.概率算法:四个概率算法的基本概念,其他琐碎的知识点(跳跃表的复杂度之类的...)。
8.线性规划与网络流(不知道怎么考),要考应该也只靠线性规划部分吧....
简答:
1.要么直接给递推式,要么给简单的伪代码自己写递推式。然后重头戏为递归的求解,主方法or递归树。都到这个地步了,我就大胆猜测,必定是伪码,而且一定是最多6个步骤,标号序的伪码。
2.框架默写(递归分治的框架or回溯法4种框架之一)我觉得应该就考回溯法了,都猜到这个地步了,我不妨再猜一下应该考排序树的算法框架,因为两个swap函数很有含金量(好做考点)。
3.代码填空(估计就是动态规划/贪心/概率三种里面挑一个或者结合起来)不过既然都预测了,大胆一点,我盲猜是概率的代码填空。上难度就结合动态规划或者回溯,大概难度最难就是快速排序or N后问题 or 线性时间 的难度。不上难度就来个拉斯维加斯算法/蒙特卡洛算法的代码填空,然后稍微求解一下概率啥的。
4.贪心算法:Dij,Prim,哈夫曼编码,Kruakal的实际应用
5.不知道会是什么了...不过都预测了,我大胆点猜测,应该是第一章的一些证明题目,比如O(f)O(g) = O(fg)。或者角度刁钻一些,考一个o(f)的相关证明, 就看你有没有用比值的方法证明。或者第一章的课后题目的一些相关知识(求解O啊,平均时间的定义啊....)
大题:
1.回溯or分支限界法:画解空间树,然后进行描述。回溯就是深度搜索,主要有返回的过程。分支限界法,主要是队列的形式,是FIFO还是优先级。不过不管怎么描述,都离不开活结点,死结点,拓展结点的说法。不妨再大胆猜测,我盲猜要么给约束/上界函数,要么让我们自己想一个,这颗解空间树不超过3层,起码能剪枝减去百分之40。
2.动态规划给个题目,要求给出算法。应该就是14分的题目。找出+证明最优子结构6分,给出递推式3-5分(注意递推式要有边界),代码/伪代码/手工推答案符合要求/完成任务满分。既然都预测了,不妨猜个难度,我盲猜难度最难就是作业题的数字三角形。算法复杂度我都猜好了,一般就是时间空间都为O(n^2)。
3.线性规划的单纯形法。应该就是给(有可能要自己写)两个不等式(2-3分),加入两个松弛变量y1,y2,把不等式化为约束标准型(3-5分)。然后求解,求解过程要画矩形(一个矩形3分)。盲猜就生产计划决策的题目难度,运气好正好就两次矩阵变换就能求解完成。
要是压中了80分以上,晚上就是买彩票!!!
后记
好消息是压中不少题目,坏消息是考试脑子有点抽筋,犯了不少计算错误(不过人非圣贤孰能无过....)
学弟学妹们记得感谢@AD_Endr这位学长考场手抄的试题
学弟学妹们记得感谢@AD_Endr这位学长考场手抄的试题
学弟学妹们记得感谢@AD_Endr这位学长考场手抄的试题
(嗯,重要的事情说三遍)
2023-12-14 南门彩票店购买10r刮刮乐,痛失十元,家人们,赌狗行为不可取(/_\)大怨种