| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7679 人关注过本帖, 1 人收藏
标题:贪心算法求解这道题
只看楼主 加入收藏
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 65楼 wmf2014
误会了。没有一点冷嘲热讽的意思。很出人意外,诚心佩服。
觉得你写的代码价值除了贴在论坛里,供大家学习之外。还有它更值得去的地方。
随机数据的运行结果,出现了大量的满包情况,包的利用率无疑是很高的。但评估它还要有专门的方法,特别是要和其它算法比较。贴图是若干年前的文章。目的是将HGGA和MTP运行情况比较,theo是理论最少包,bins是计算得到的包数,evals是价值函数评估值。用120个item做了20次测试。包容量是150,每个item的取值范围是20-100。可以看到你的代码对比这两种算法,时间上优势。当然经过这么多年计算机速度快了很多,因此了解当前的进展情况是必需的。
想想看,最直接和最形象情况,一维可以解决线性材料切割问题,二维可以解决平面切割,三维可以解决集装箱问题,大有可为。前段时间在VB版块有贴子求玻璃平面切割的软件,我只是找了一个现成的软件给他。
图片附件: 游客没有浏览图片的权限,请 登录注册

大开眼界
2015-06-12 16:09
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
此类问题实际中多用贪心策略。虽然不一定得到最优解,但得到的次优解与最优解也很接近,而且算法简单高效。

然而现在,我们要的就是最优解。是任何数据下都能得到最优解的算法。所以次优解在这里等同于错误。

我挑了两组数据给大家测试。你们至少保证这两组数据的结果是正确的再发上来。再有就是,尽量遵守一楼的输入输出格式约定。

10
2 2 2 2 2 7 7 7 7 7
10

7
4 3 3 2 2 2 2
8

对了,楼主郑鑫同学,这题的出处是哪儿?题目复制全了吗(没见C的上限)?如果外网能访问,请把OJ地址发上来,也便于实际测试。

[ 本帖最后由 beyondyf 于 2015-6-12 22:47 编辑 ]

重剑无锋,大巧不工
2015-06-12 22:31
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
看错啦

[ 本帖最后由 BlueGuy 于 2015-6-12 23:17 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2015-06-12 23:16
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
回复 67楼 beyondyf

一下子击碎了我的代码。不过如果数据是:
10
2 2 2 2 2 7 7 7 7 7
9

我的代码可立马得到正确的数据,我可以遵循这个规则做下去:就是不断调整容量参考值在平均值两边变化的话,最终会得到一个最优的值。好像对我的代码改动不大。

能编个毛线衣吗?
2015-06-12 23:18
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 69楼 wmf2014
为什么击碎了你的代码?

我就是真命天子,顺我者生,逆我者死!
2015-06-12 23:28
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 69楼 wmf2014
姐姐,你这思路真不对。你可以继续试。还有,数据是我特意挑的,咱不能假设都是很弱的数据是不是,这不成掩耳盗铃了。

重剑无锋,大巧不工
2015-06-12 23:53
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 70楼 BlueGuy
至于你,按你现在的进度,别说端午,就是重阳也搞不定。不行明年清明我把答案给你烧过去。到UC咨询也这么长时间了,连个01背包还没搞懂。

1000分好像激励的还不够,要不要我再加点?

重剑无锋,大巧不工
2015-06-13 00:03
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 72楼 beyondyf
我那是递归 动态规划,不是普通的迭代,
递归容易找最大值,但是不容易找最大值组合
我正在求组合,正在找一个正确的推理,
我觉得我跟正确答案就一步之遥

我不信别人0/1背包研究的很透彻

[ 本帖最后由 BlueGuy 于 2015-6-13 00:26 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2015-06-13 00:10
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 73楼 BlueGuy
别扯了哈,你知道啥是动态规划不?你只是知道这么个名词而已。你那段代码叫穷举知道不?别再跟我胡搅蛮缠了,想玩就认真研究学习去,不想玩了就消失我当你没来过,想探讨就别吹牛X。

重剑无锋,大巧不工
2015-06-13 00:28
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 74楼 beyondyf
那你错了一半,我写过斐波那契数列,杨辉三角,完全背包,
并且我会用递归备忘录解以上三个题目,也会用迭代解,

其他的题目,不熟练
我解这种题目都是按照 先枚举,再记录,后迭代的方式彻底研究,不留死角

[ 本帖最后由 BlueGuy 于 2015-6-13 00:41 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2015-06-13 00:34
快速回复:贪心算法求解这道题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018339 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved