2019.1.8 13:30-15:20 《算法分析与设计A》考试
刚考完,回忆一下题目。
先总结一下:感觉难度完全不是自己想象的那样,没时间检查,好多不确定不会做。主要还是自己复习的不好。
一、选择题
- 算法的五个特性
- 动态规划法的特征
- 分支限界法的概念
- 一道背包问题求最大价值
- 克鲁斯卡尔算法,加入新结点之后,判断是否和原来的生成森林形成回路,其中生成森林用了什么数据结构。(同学说是并查集???)
二、填空题
- 第一个被证明的
NP完全问题
是什么? - 回溯法的两个性质。
- 贪心法的关键。
- 求 f(n) 的下界。
三、简答题
Prim算法
和Kruskal算法
的异同点。- 背包问题写出非启发式算法的S0~S3,并写出解。
- 关键路径:
earliest[i]
和latest[i]
的递推公式、填表格、判断关键活动、写出关键活动和关键路径。 - 图论相关问题,求最小费用,画出最终的设计图。(不知道是不是用
Prim算法
或者Kruskal算法
) - 子集和数:先写出满足条件的子集,再画出空间状态树,最后写出解向量。
四、证明题
最长公共子序列问题
Xm={x1,x2,…,xm},Yn={y1,y2,…yn},xm=yn。证明:若 Zk={z1,z2,…,zk} 是 Xm 和 Yn 的最长公共子序列,则 zk=xm=yn 且 Zk-1 是 Xm-1 和 Yn-1 的最长公共子序列。
五、程序填空题
- 一般背包问题的程序填空。
- 最长公共子序列的程序填空。