第三次课贪心算法.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

intmain(intargc,char*argv[]){ quee*n; node*p; n=init(); while(s!=0) { p=find(n); del(n,p); s--; } print(n); return0;}第30页,共73页,星期日,2025年,2月5日3.3POJ1017Packets第31页,共73页,星期日,2025年,2月5日Packets题意已知:有6*6的大箱子和1*1,2*2,3*3,4*4,5*5,6*6的木块(平面)问:给定各种木块的数目,求最少需要多少个大箱子来装?例如:输入:004001-〉输出2输入:751000-〉输出1第32页,共73页,星期日,2025年,2月5日Packets解题思想:贪心准则:先放大的,后放小的6*6的木块每个占用一个箱子;5*5的木块每个占用一个新箱子,余下11个1*1的空格;4*4的木块每个占用一个新箱子,余下5个2*2的空格。4.3*3的木块每4个占用新一个箱子,不足4个也占一个新箱子,分情况余下不同数目的空格;5.2*2的木块先填空格,空格不足开新箱子,每9个2*2的木块占一个新箱子;6.1*1的木块先填空格,空格不足开新箱子,每36个占一个新箱子。第33页,共73页,星期日,2025年,2月5日Packets假设6*6,5*5,4*4,3*3,2*2,1*1的箱子个数b6b5b4b3b2b1第34页,共73页,星期日,2025年,2月5日Packets4*4,5*5,6*6的块单独开新的箱子。每一个5*5的块还能放下11个1*1的箱子。每一个4*4的块还能放下5个2*2的箱子,或者放下20个1*1的箱子。4*4块5*5块6*6块第35页,共73页,星期日,2025年,2月5日3*3的块1-4块占一个新箱子,一个箱子可放下4个3*3的块。如果一个箱子放下了1个3*3的块,则还可放下5个2*2的块和7个1*1的块。或者可以放下27个1*1的块。如果一个箱子放下了2个3*3的块,则还可放下3个2*2的块和6个1*1的块。或者可以放下18个1*1的块。如果一个箱子放下了3个3*3的块,则还可放下1个2*2的块和5个1*1的块。或者可以放下9个1*1的块。第36页,共73页,星期日,2025年,2月5日PacketsnTotal-箱子数1)先放好所有6*6,5*5,4*4和3*3的木块 nTotal=b6+b5+b4+(b3+3)/44*4,5*5,6*6单独开新的箱子3*3每1-4个占一个新箱子2)再把2*2的塞到放有3*3木块的箱子里 intContain2[4]={0,5,3,1}; Contain2[i]表示当箱子里有i个3*3的木块时,还能放下多少个2*2的木块 3)考虑放有3*3的木块的箱子在塞满2*2的木后还能放多少个1*1的木块: intContain1[4]={0,7,6,5}; Contain1[i]表示当箱子里有i个3*3的木块,并且还填满了2*2的木块后,还能放下多少个1*1的木块。第37页,共73页,星期日,2025年,2月5日Packets如果箱子里放1个3*3木块,那么还能放5个2*2木块,以及7个1*1木块第38页,共73页,星期日,2025年,2月5日Packets如果箱子里放2个3*3木块,那么还能放3个2*2木块,以及6个1*1木块第39页,共73页,星期日,2025年,2月5日Packets如果箱子里放3个3*3木块,那么还能放1个2*2木块,以及5个1*1木块第40页,共73页,星期日,2025年,2月5日Packets 4)计算放好6*6,5*5,4*4,3*3后留下多少空格能放2*2 c2=b4*5+Contain2[b3%4];留下多少空格能放1*1 c1=b5*11+Contain1[b3%4](能放2*2的地方暂不考虑放1*1,因为如果c2〉b2则多余的b2-c2个位置可以放4*(b2-c2)个1*1的箱子)第41页,共73页,星期日,2025年,2月5日Packets 5)放2*

文档评论(0)

xiaozhuo2022 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档