

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、黄源河题意简述有 N(N=10000)箱黄金,第 i 箱黄金价值为 Ai。要将这 N 箱黄金赏给 M(M=1000)位将军,每人可以得任意箱,但一箱黄金不能分开发。请找出一种分黄金得方案,使将军中获得最多黄金与获得最少黄金之差不超过 K。分析稍加分析可知,这道题是的,N 和 M 还很大,显然不能搜索。由于题目不是要求最优解,而是求出一个近似解就可以了,所以随机化贪心,遗传算法这些近似算法可以派上用场了。本人做这题用了三个不同策略的贪心,下面我分别介绍一下这三个贪心把。贪心一这是最常规,最容易想到的贪心:发牌式贪心。把这 M 箱黄金,从大到小,依次分给黄金最少的人。用堆实现,时间复杂度为O(N+
2、M)logN)。这个贪心主要是应付 K 比较大的数据,效果还比较理想。但是我发现,如果随机生成大规模数据,最优解有很大利率是 1 或 0,而如果 K 也是 1 或 0 的话,这种发牌式贪心常常做不出来。即使改成随机化的,效果仍然不理想。所以有必要针对 K 等于 1 或 0 的情况选择贪心三的贪心策略,这就是的贪心二和贪心二这个贪心策略是专门为 K=1 的情况精心设计的。如果 K=0,则 N 个人都要得到The Emperors Riddle(URAL 1144)解题从大到小拿黄金,拿的时候过他的指标,直至刚好达到他的指标时停止。这个算法也比较容易实现,时间复杂度为 O(NM)。这个贪心可以应付
3、大部分K=1 的情况,但是仍有极个别的过不了,这时三了。要出最后的王牌贪心贪心三这个贪心其实是贪心二的加强版,也是专门应付 Kmax then max:=j; end;i:=0;for j:=1 to max do beginlsmj:=i;if hsj0 then i:=j;end; end;Procedure adjust; vari,j,x:word; beginx:=tr1; i:=1;repeatj:=i shl 1;if jm then break;if (jm)and(nwtrj+1=nwx then break; tri:=trj;i:=j; until false; tri:
4、=x;end;Procedure greedy1;vari,j,l:word; mx:longbegin;for i:=1 to m do tri:=i;fillchar(jn,sizeof(jn),0); fillchar(nw,sizeof(nw),0); sv:=hs;i:=max; repeatwhile svi0 do beginj:=i; l:=svj;inc(nwtr1,j);nx2svj:=jntr1;jntr1:=svj;svj:=nxtsvj; adjust;end; i:=lsmi;until i=0; mx:=0;for i:=1 to m doif nwimx the
5、n mx:=nwi; mine:=mx-nwtr1;end;Procedure greedy2(la,lb:word); vari,j:word;nw:long begin;fillchar(jn,sizeof(jn),0); sv:=hs;for i:=1 to m do beginj:=max; nw:=b; repeatif nw0 do beginif (nw0)or(nw=0);if (nw1)or(nw=0)and(lb=0)or(nw=1)and(la=0) then exit; if nw=0 then dec(lb) else dec(la);end; mine:=b-a;e
6、nd;Procedure greedy3(la,lb:word); vari,j,x,y,z:long begin;fillchar(jn,sizeof(jn),0); sv:=hs;for i:=1 to m do beginfor j:=1 to b do dpj:=30000;dp0:=0;j:=max; repeatif svj0 then beginfor x:=b-1 downto 0 do if dpx30000 then beginy:=x+j; z:=svj;while (z0)and(y0)and(dpa30000) then x:=a; if (lb0)and(dpb30
7、000) then x:=b;if x0 then beginif x=a then dec(la) else dec(lb); repeatnx2svdpx:=jni;jni:=svdpx; svdpx:=nxtsvdpx; dec(x,dpx);until x=0; break;end; end; j:=lsmj;until j=0; end; mine:=b-a;end; BeGiN init;greedy1;if minek then begina:=tot div m; lb:=m div a; b:=succ(a); lb:=tot mod m; la:=m-lb; greedy2(la,lb);if minek then greed
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省周口市鹿邑县第二高级中学校2024-2025学年高二下学期3月月考语文试题
- 旅游创业企划书
- 女教师新入职发言稿
- 2024年特许金融分析师考试的复习策略试题及答案
- 2024年特许金融分析师考试信心试题及答案
- 特许金融分析师试题及答案精粹
- 2024年特许金融分析师考试考生经验交流会试题及答案
- 金融分析师考试学习资料整合与试题及答案
- 2024年特许金融分析师考试快速提升试题及答案
- 2024年特许金融分析师考试核心知识点试题及答案
- 2025核电厂常规岛安全生产风险分级管控及隐患排查治理规范
- DB11∕T344-2024陶瓷砖胶粘剂施工技术规程
- DB37-T 5312-2025 《建筑施工安全防护设施技术标准》
- 2024年凤凰出版传媒集团秋季招聘笔试参考题库附带答案详解
- 2025年扬州市职业大学单招职业倾向性测试题库审定版
- 教科版三年级科学下册第二单元《动物的一生》全部课件(共8课)
- DeepSeek的应用与部署
- 2024年内蒙古自治区高等职业院校对口招收中等职业学校毕业生单独考试语文试题
- 公司金融(对外经济贸易大学)知到智慧树章节测试课后答案2024年秋对外经济贸易大学
- 2025年盐城经济技术开发区管委会选调文秘历年高频重点提升(共500题)附带答案详解
- 银行理财纠纷演练方案
评论
0/150
提交评论