




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、阅读以下说明和图,填补流程图中的空缺,将解答填入答题纸的对应栏内。 说明 在一条农村公路的一边稀疏地分布着房子,其分布如下图所示。某电信公司需要在某些位置放置蜂窝电话基站,由于基站的覆盖范围是6公里,因此必须使得每栋房子到某个基站的直线距离不超过 6 公里。为简化问题,假设所有房子在同一直线上,并且基站沿该直线放置。现采用贪心策略实现用尽可能少的基站覆盖所有的房子。实现贪心算法的流程如下图所示,请填充其中空白并计算该算法的时间复杂度,其中:1di(1i N)表示第i个房子到公路A端的距离,N表示房子的总数,房子编号按照房子到公路A端的距离从小到大进行编号。2sk表示第 k(k 1)个基站到公路 A 端的距离,算法结束后 k 的值为基站的总数。该算法的时间复杂度为 (5)。二、阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。 【说明】某餐厅供应各种标准的营养套餐。假设菜单上共有 n 项食物 m1,m2,mn,每项食物 mi的营养价值为 vi,价格为 pi,其中 i=1,2,n,套餐中每项食物至多出现一次。客人常需要一个算法来求解总价格不超过 M 的营养价值最大的套餐。【问题 1】下面是用动态规划策略求解该问题的伪代码,请填充其中的空缺(1)、(2)和(3)处。伪代码中的主要变量说明如下:n:总的食物项数;v:营养价值数组,下标从 1 到 n,对应第 1 到第 n 项食物的营养价值;p:价格数组,下标从 1 到 n,对应第 1 到第 n 项食物的价格;M:总价格标准,即套餐的价格不超过 M;x: 解向量(数组),下标从 1 到 n,其元素值为 0 或 1,其中元素值为 0 表示对应的食物不出现在套餐中,元素值为 1 表示对应的食物出现在套餐中;nv:n+1 行 M+1 列的二维数组,其中行和列的下标均从 0 开始,nvij表示由前 i 项食物组合且价格不超过 j 的套餐的最大营养价值。问题最终要求的套餐的最大营养价值为nvnM。伪代码如下:MaxNutrientValue(n, v, p, M, x) 1 for i = 0 to n2 nvi0 = 03 for j = 1 to M 4 nv0j = 05 for i = 1 to n6 for j = 1 to M 7 if j pi /若食物 mi不能加入到套餐中8 nvij = nvi - 1j 9 else if (1) 10 nvij = nvi - 1j 11 else 12 nvij = nvi - 1j pi + vi 13 j = M 14 for i = n downto 115 if (2) 16 xi = 0 17 else 18 xi = 119 (3) 20 return x and nvnM 【问题 2】 现有 5 项食物,每项食物的营养价值和价格如表1 所示。表 1 食物营养价值及价格表编 码营养价值价 格m120050m218030m322545m420025m5505若要求总价格不超过 100 的营养价值最大的套餐,则套餐应包含的食物有 (4) (用食物项的编码表示),对应的最大营养价值为(5)。【问题 3】 【问题 1】中伪代码的时间复杂度为(6)(用 符号表示)。三、算法填空1.背包问题的贪心算法void Knapsack(int n,float M,float v,float w,float x) Sort(n,v,w); int i; for (i=1;i=n;i+) xi=0; float c=M; for (i=1;ic) break; xi=1; _; _;2.最大子段和: 动态规划算法int MaxSum(int n, int a) int sum=0, b=0; /sum存储当前最大的bj, b存储bj for(int j=1; j0) b+= aj ; _; /一旦某个区段和为负,则从下一个位置累和 if(bsum) _; return sum; 3.贪心算法求装载问题templatevoid Loading(int x, Type w, Type c, int n) int *t = new int n+1; ; for (int i = 1; i = n; i+) xi = 0; for (int i = 1; i = n & wti = c; i+) xti = 1; ;4.贪心算法求活动安排问题templatevoid GreedySelector(int n, Type s, Type f, bool A) _; int j=1; for (int i=2;i=fj) _; j=i; else Ai=false; 5.快速排序templatevoid QuickSort (Type a, int p, int r) if (pr) int q=Partition(a,p,r); _; /对左半段排序 _; /对右半段排序 6.排列问题Template void perm(Type list, int k, int m ) /产生listk:m的所有排列 if(k=m) /只剩下一个元素 for (int i=0;i=m;i+) coutlisti; coutendl; else /还有多个元素待排列,递归产生排列 for (int i=k; i=m; i+) swap(listk,listi); perm(list,k+1;m); swap(listk,listi); 四、问答题1.分治法的基本思想是什么?2. 设计动态规划算法的主要步骤是什么3. 分治法与动态规划法的异同有哪些4. 分支限界法与回溯法的异同有哪些5. 分支限界法的搜索策略什么6. 分治法所能解决的问题一般具有的几个特征是:7. 用分支限界法设计算法的步骤是:8. 常见的两种分支限界法的算法框架9. 回溯法中常见的两类典型的解空间树是子集树和排列树。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 以教育心理学为指导的在线课堂互动模式研究
- 2025实验中学女教职工权益保护专项集体合同
- 2025南海区属国有企业资产租赁合同
- 迎战公务员面试题及答案
- 2025金属结构件委托加工合同
- 2025乡村地区土地使用权转让合同
- 医学综合自考试题及答案
- 小区车行出入管理制度
- 党员集市摊位管理制度
- 办案文书规范管理制度
- GB/T 26354-2025旅游信息咨询服务
- 【日化智云】2024年家居清洁品类市场概况及2025年消费者洞察新品趋势报告
- 新疆维吾尔自治区2024年普通高校招生单列类(选考外语)本科一批次投档情况(文史)
- 2025年中考历史专题复习七大热点专题知识复习宝典
- 麻醉科理论知识培训课件
- 课题申报书:数字化升级背景下婴幼儿托育服务与管理专业“五金”建设实践研究
- 江苏省南京市2024年中考物理试卷(含答案)
- 湖南省2025年八年级下学期中考模拟生物试题(BEST联考)(含答案)
- 拉萨市“一考三评”学习考试题库
- 委托收款协议书模板
- 《工业网络与组态技术》课程标准
评论
0/150
提交评论