2019.1.8 13:30-15:20 《算法分析与设计A》考试

刚考完,回忆一下题目。

先总结一下:感觉难度完全不是自己想象的那样,没时间检查,好多不确定不会做。主要还是自己复习的不好。

一、选择题

  1. 算法的五个特性
  2. 动态规划法的特征
  3. 分支限界法的概念
  4. 一道背包问题求最大价值
  5. 克鲁斯卡尔算法,加入新结点之后,判断是否和原来的生成森林形成回路,其中生成森林用了什么数据结构。(同学说是并查集???)

二、填空题

  1. 第一个被证明的 NP完全问题 是什么?
  2. 回溯法的两个性质。
  3. 贪心法的关键。
  4. 求 f(n) 的下界。

三、简答题

  1. Prim算法Kruskal算法 的异同点。
  2. 背包问题写出非启发式算法的S0~S3,并写出解。
  3. 关键路径:earliest[i]latest[i] 的递推公式、填表格、判断关键活动、写出关键活动和关键路径。
  4. 图论相关问题,求最小费用,画出最终的设计图。(不知道是不是用 Prim算法 或者 Kruskal算法
  5. 子集和数:先写出满足条件的子集,再画出空间状态树,最后写出解向量。

四、证明题

最长公共子序列问题

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 的最长公共子序列。

五、程序填空题

  1. 一般背包问题的程序填空。
  2. 最长公共子序列的程序填空。