2024-2025-1 山东大学《算法设计与分析》期末(回忆版)
计算机科学与技术学院:时阳光老师
参考教材:算法导论(原书第 3 版)/(美)科尔曼(Cormen,T. H.)等著;殷建平等译. ——北京:机械工业出版社,2013.1(2023.10 重印)
(计算机科学丛书)
书名原文:Introduction to Algorithms, Third Edition
ISBN 978-7-111-40701-0
模拟 - BFS
给定一个无向图 GGG,画出在其上运行 BFSBFSBFS 后生成的广度优先树并写出每个节点的 ddd 值
模拟 - 最大流
给定一个有向图 GGG,要求给出具体过程
模拟 - Floyd-Warshall 算法
给定一个有向图 GGG,列出在其上运行 Floyd−WarshallFloyd-WarshallFloyd−Warshall 算法过程中的所有 DDD 矩阵
证明 - 图相关
有向图 GGG 无环当且仅当 DFS(G)DFS( G )DFS(G) 不生成返回边
证明 - Prim 算法正确性
若 AAA 是图 GGG 的某棵最小生成树的边的子集,(X,Y)( X, Y )(X,Y) 是图 GGG 中任意一个尊重 AAA 的切割,证明:
对于横跨切割 (X,Y)( X, Y )(X,Y) 的一条轻边 (u,v)( u, v )(u,v),有 A∪{(u,v)}⊆TA \cup \{ ( u, v ) \} \subseteq TA∪{(u,v)}⊆T,其中 TTT 是图 GGG 的一棵最小生成树
判断 - DFS 与边分类
判断以下命题,若正确请给出证明,若错误请举出反例并解释:
( 1 ) 若 d[u]<d[v]d[ u ] < d[ v ]d[u]<d[v],则 uuu 是 vvv 的祖先
( 2 ) 若 d[u]<d[v]d[ u ] < d[ v ]d[u]<d[v],则 (u,v)( u, v )(u,v) 是树边
判断 - 松弛
对于图 GGG 中的一条边 (u,v)( u, v )(u,v),是否在松弛 (u,v)( u, v )(u,v) 一次之后,就恒有 d[v]≤d[u]+w(u,v)d[ v ] \le d[ u ] + w( u, v )d[v]≤d[u]+w(u,v) 成立?也就是说,无论后续对其他边松弛多少次都不会改变该不等式吗?若不会改变则给出证明,若会改变则举出反例并解释。
算法设计 - 动态规划
有向无环图,求最长路,要求使用动态规划设计
算法设计 - 单源最短路径
给定一个有向带权图 GGG,边权表示该边能够成功通过的概率 qqq,一条路径的通过概率为这条路径上所有边权之积
提示:可通过变换 w(u,v)=−log2q(u,v)w( u, v ) = -{ log }_{ 2 }{ q( u, v ) }w(u,v)=−log2q(u,v)
( 1 ) 设计一个算法,求解源点 sss 到终点 ttt 的具有最大通过概率的路径
( 2 ) 在题目所给出的图 GGG 上运行所设计的算法
( 3 ) 证明所设计的算法的正确性
注:
- 全部都是大题,无小题,偏重证明与设计,也涉及过程推演
- 部分题面全英描述,其余题面中文描述
以上回忆版仅供参考,预祝各位都能取得自己理想的成绩!