已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 贪心算法设计与应用一基本原理的概括贪心法是一种算法设计技术,通常用于求解最优化问题。通过一系列选择步骤来构造问题的解,每一步都是对当前部分解的一个扩展,直至获得问题的完整解。所做的每一步选择都必须满足: 1)可行的:必须满足问题的约束。 2)局部最优:当前所有可能的选择中最佳的局部选择。3)不可取消: 选择一旦做出,在后面的步骤中就无法改变了。要注意的是,贪心法不能保证总能得到最优解(一系列的局部最优选择不能保证最后得到整体最优解)二该类算法设计与实现的要点贪心算法往往效率高,一般时间复杂性为多项式阶。贪心算法一般较简单,其关键和难点在于贪心选择策略的确定,以及证明相应的贪心算法确实可求出最优解。三实验目的和要求理解贪心算法的基本原理,掌握贪心算法设计的基本方法及其应用;四实验内容(一) 加油问题(Problem Set 1702):1. 问题描述一个旅行家想驾驶汽车从城市A到城市B(设出发时油箱是空的)。给定两个城市之间的距离dis、汽车油箱的容量c、每升汽油能行驶的距离d、沿途油站数n、油站i离出发点的距离di以及该站每升汽油的价格pi,i=1,2,n。设d1=0d2dn。要花最少的油费从城市A到城市B,在每个加油站应加多少油,最少花费为多少?2. 具体要求Input输入的第一行是一个正整数k,表示测试例个数。接下来几行是k个测试例的数据,每个测试例的数据由三行组成,其中第一行含4个正整数,依次为A和B两个城市之间的距离d1、汽车油箱的容量c(以升为单位)、每升汽油能行驶的距离d2、沿途油站数n (1=n=200);第二行含n个实数d1, d2 , dn,表示各油站离出发点的距离(d1=0);第三行含n个实数p1, p2 , pn,表示各油站每升汽油的价格。同一行的数之间用一个空格隔开。Output对于每个测试例输出一行,含一个实数,表示从城市到城市所要花费的最少油费(输出的结果精确到小数点后一位)。若问题无解,则输出“No Solution”。3. 代码如下:#include#define MAX 20void look(float dis,float pir,int n,int d2,int oil)/dis距离起点距离,pir油价int i,j,k;float pirce=0.0,c1=0,x,c2;for(j=0;j=n;j+)for(i=j+1;i=n;i+)if(piri=oil)x=oil-c1;elsex=c2-c1;if(x0)x=0;pirce=pirce+pirj*x;break;c1=c1+x-(disj+1-disj)/d2);printf(%.1f,pirce);void main()int k,i,j,nMAX,cMAX,d1MAX,d2MAX,lengthMAX,flagMAX;float AMAXMAX,BMAXMAX;printf(输入测试例个数:n);scanf(%d,&k);for(i=0;ik;i+)printf(输入第%d个数据:n,i+1);flagi=0;scanf(%d %d %d %d,&d1i,&ci,&d2i,&ni);lengthi=ci*d2i;for(j=0;jni;j+)scanf(%f,&Aij);Aini=d1i*1.0;for(j=0;j0;j-)if(Aij-Aij-1lengthi)flagi=1;if(flagi=1)printf(第%d次结果:,i+1);printf(NO solution!n);elseprintf(第%d次结果:,i+1);printf(最少油费:);look(Ai,Bi,ni,d2i,ci);printf(n);printf(n);(二) 黑白点的匹配(Problem Set 1714):1. 问题描述设平面上分布着n个白点和n个黑点,每个点用一对坐标(x, y)表示。一个黑点b=(xb,yb)支配一个白点w=(xw, yw)当且仅当xb=xw和yb=yw。若黑点b支配白点w,则黑点b和白点w可匹配(可形成一个匹配对)。在一个黑点最多只能与一个白点匹配,一个白点最多只能与一个黑点匹配的前提下,求n个白点和n个黑点的最大匹配对数。2. 具体要求Input输入的第一行是一个正整数k,表示测试例个数。接下来几行是k个测试例的数据,每个测试例的数据由三行组成,其中第一行含1个正整数n(n16);第二行含2n个实数xb1, yb1,xb2, yb2, xbn, ybn, (xbi, ybi),i=1, 2, , n表示n个黑点的坐标;第三行含2n个实数xw1, yw1,xw2, yw2, xwn, ywn,(xwi, ywi),i=1, 2, , n表示n个白点的坐标。同一行的实数之间用一个空格隔开。Output对于每个测试例输出一行,含一个整数,表示n个白点和n个黑点的最大匹配对数。3. 代码如下:#include iostream.h#include math.hstruct pointdouble x,y;void sort(point *a,int n)int i,j;point p;for(i=1;i=n;i+)for(j=i+1;jaj.x|(ai.x=aj.x&(ai.yaj.y)p=ai;ai=aj;aj=p;double dis(point pointw,point pointb)double dist;dist=sqrt(pow(pointb.x-pointw.x),2)+pow(pointb.y-pointw.y),2);return dist;int main()int i,j,n,k;cinn;point *pointw=new pointn;point *pointb=new pointn;int *b=new intn;for(i=1;ipointbi.x;for(i=1;ipointbi.y;for(i=1;ipointwi.x;for(i=1;ipointwi.y;sort(pointw,n);for(i=1;i=n;i+)bi=1;int count=0;for(i=1;i=n;i+)double mindis=32767;double Min=mindis;for(j=1;j=pointwi.x&pointbj.y=pointwi.y)if(mindisdis(pointwi,poin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 17737.124-2026同轴通信电缆第1-124部分:电气试验方法漏泄电缆的耦合损耗试验
- T/ZGM 008-2025绿色产品评价 201×7凝胶型强碱性苯乙烯系阴离子交换树脂
- T/HNCAA 069-2025公路桥梁结构健康监测技术应用规程
- T/CIQA 67-2023“三同”产品 家用和类似用途电动洗衣机技术要求
- T/CAPSA 11202-2024生产安全事故应急响应标准文献元数据导则
- T/CSBME 090-2025车载医用X射线计算机体层摄影设备临床放射防护要求
- 2025~2026学年广东省河源市东源县人教版五年级上册数册中作业题【附答案】
- 2026学年湖南省醴陵市五年级语文期末提升竞赛挑战题(详细参考解析)详细答案和解析
- 2026学年云南省楚雄市五年级语文期末高分难点突破题(详细参考解析)详细答案和解析
- PHP初级面试题及详细答案(真实企业版)
- 2026国考行测真题及参考答案
- 智造未来-2026年智能建造技术与施工机器人应用全景
- 2026中国放射性废水处理用陶瓷超滤膜辐照稳定性加速测试报告
- 2026秋统编版(新教材)七年级道德与法治上册易错知识点梳理+分课填空自测练习题及答案
- 四上2-3《呼吸的变化》教学课件
- 2026年中盐榆林盐化有限公司秋季招聘笔试模拟试题及答案详解
- 2025年信息安全工程师考试真题及答案解析
- 2026年压力容器考试题库及答案
- BJS 202602 食品中伐地那非杂质30的测定
- 2026年广东省中考物理试卷附答案
- 2026年新闻记者职业资格考试新闻采编实务试卷及答案解析
评论
0/150
提交评论