2022年 算法导论 计科
一、计算(35‘)
1、(10分)DFS、BFS树,DFS遍历标时间起始与终止时间并说明边的类型(前向边、后向边、树边(原题没有交叉边))
2、(10分)FLOYD求最短路矩阵与前驱矩阵(3个顶点,非填空,纯手撸)
3、(15分)最大流、最小割、增广路(要求画图,尽量选择尽快达到最大流的路,不然有点多)
二、证明(20‘)
1、证明利用归纳法按照(s,v1)、(v1,v2)...(vk-1,vk)依次松弛能够得到s到vk的最短路(描述的不够准确,类似路径松弛性质)
2、割(S,V-S),其中边e是该割的轻边,证明所有MST均包含e
三、判断分析
1、DFS,下面两个条件哪个能保证u.f>v.d,能请给出简短的解释,否则给反例
(1)存在u到v的路径
(2)存在边(u,v)
2、课后题:(不准确的描述)小明聪明的提出一个算法:一个树以任意割分割成(S,V-S),两个点集点的数目最多差1个,割的轻边连接这两部分,分别在S和V-S中递归进行上述,能得到MST,判断正误
四、涉及算法、
1、题干明确说用DP做:给你一个图,让你求源点s到其他任意点的路径条数且不经过点x(给的例子x是一个中间点)
2、仿照迪杰斯特拉算法设计一个算法求源点s到任意点的值(假设这个值是m,实际是流的表述),这个值是源点s到vi的路径中所有边中边权最小的值,并要求记录前驱
(三问,第一问描述算法,第二问跑例子填表,第三问证明设计算法的正确性)