HNU算法设计与分析期末考试

刚刚考完,现在回顾一下这次考试。总体来说还是比较简单的,凭记忆复现一下题目给后面的学弟学妹一点帮助吧。

一、选择题(15个 30分)

这部分还是比较简单的,只要认真看过老师的6章PPT,很快能做完,用时大约3-5分钟。

二、简答题(2个 20分) 

1. 简述动态规划法的算法思想,并写出能用动态规划法解决的问题需要具备的特征。

2. 简述回溯法和分支限界法的异同。

这些PPT上也都提过,书上也有详细说明。

三、算法题(5个 50分) 

第一道是算法应用题(用算法思想解实际问题),后面四道是算法实现题(写代码)

1. 用Dijkstra算法求单源最短路径

画表体现一下算法思路和计算过程即可。

2. 重叠区间问题。有一系列区间,有些区间有重叠部分,要求删去其中部分区间,使得剩余区间均不重叠,并且删除的区间数量要最少。

实际上跟活动安排问题的思路完全一样,按活动结束时间(在这里是区间终点)从小到大排序,从前往后安排区间,删去会重叠的区间即可。弄懂活动安排问题这个例题的话,这题肯定能做出来。

3. 油管安排问题。有一个主油管,还有n个油井,给你它们的x坐标和y坐标。油井垂直于主油管有支油管,要确定主油管的位置,使得支油管的长度之和最小。要求用分治法写代码。

这题很奇怪,它又说主油管水平,支油管垂直于主油管,照理说只需要油井的y坐标即可,但还说给了x坐标。不太明白,可能是干扰项也可能是我理解错误。但是按我的思路也就是找n个油井中y坐标最中间的那个油井,然后把主油管安排在那里即可,因为这样不管往上还是往下移动主油管,支油管的长度之和都会增加,因此此时是最小的。此外,如果n是偶数,实际上主油管在上下n/2个油井中间的那段区间均可,此时的支油管的长度之和是一样的。

具体算法的话,其实就是用了线性时间选择这个例题:给定线性序集中n个元素和一个整数k1≤k≤n,找出这n个元素中第k小的元素。令k=(n+1)/2即可得到我们这题的答案。

4. 数字三角形问题。动态规划做很简单。

5. 给一个w数组和一个数m,要求输出所有能使得数字之和=m的w的子集。

是一个很简单的用回溯法解决的问题,如果你有关回溯法的书中例题都会了,那这题应该非常轻松。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值