贪心算法经典例题_第1页
贪心算法经典例题_第2页
贪心算法经典例题_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

贪心算法经典示例贪心算法是为了解决这种类型的问题而设计的,这种类型的问题没有回溯,接近于整体最优或最优解。贪心算法的基本思想是找出整个中每个小部分的最优解,将所有这些局部最优解组合起来,构成整个最优解。因此,可以使用贪心算法的问题必须满足以下两个特性:1.整体最佳解决方案可以通过本地最佳解决方案找到。2.整体可以分为几个部分,这些部分都可以找到最佳解决方案。使用贪心算法的两个代表性问题是事件部署问题和背包问题。要用贪心的算法解决问题,需要解决两个问题。第一,问题适合用贪心的方法解决吗?让我们看看寻找货币的例子。如果一个货币系统有三个货币值,面值分别为1,5,1分,求最小货币数时,可以用贪婪法解决;如果把这三种货币价格换成1分、5分、1分,就不能用贪心的方法解决。用贪心的方法解决问题很方便,但其适用范围小,还没有一般的方法来判断一个问题是否适合用贪心的方法解决。在信息学比赛中,应该什么时候使用贪心的算法,要以个人的经验来判断。二是可以使用贪心算法,并确定如何选择贪心标准,以确保最佳的问题解决。选择贪心的标准时,要验证选择的贪心标准才能使用。为了不被表面上的贪心标准所迷惑,如下例所示。示例2 (NOIP1998tg)包含n个正整数,将它们连接到一行以构成多个最大的整数。例如,如果:n=3,则3个整数为13,312,343,连接的最大整数为::n=4时,由4个整数7,13,4,246连接的最大整数为输入:nn个数字:输出连接的多位数算法分析:这个问题很容易想到贪心方法的使用。很多学生把大到小的整数联系起来,考试问题的原因都一致,但期末考试的结果不完全。根据这个贪心的标准,很容易找到12,121应该由1221组成,而不是由1212组成的犯规,从互相包括的时候开始长大了吗?不一定,就像12,123变成12312而不是1212时一样。这个问题不能用贪心法吗?这个问题可以用贪心的方法解决。只是刚才贪心的标准不对。正确的贪心标准是,先把整数变成字符串,然后比较a和b a,如果是a bb a,那么a列在b之前,反之,a列在b之后。源代码:VarS3360 array 1.20of string;T:stringI、j、k、n:longintBeginreadln(n);For i:=1 to n do beginread(k);Str(k,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论