贪心算法例子.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
贪心算法例子

Chapter 5 贪心法实例; 顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。 当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。;活动安排问题 ;活动安排问题;活动安排问题;活动安排问题;活动安排问题;活动安排问题 ;活动安排问题;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;删数问题;算法分析;1;程序;quee *init() { char str[250]; quee *n; node *tmp; node * tail; n=new quee; n-first=NULL; cinstr; cins; int i=0; while(str[i]!=\0) { tmp=new node; tmp-c=str[i]; tmp-next=NULL; if(n-first==NULL) { n-first=tmp; tail=tmp; } else { tail-next=tmp; tail=tmp; } i++; } return n; };;void del(quee *start, node *p) { node *x; x=start-first; if (x-next) { while(x-next!=p) x=x-next; } x-next=p-next; delete p; };;void print(quee *start) { node *tmp; if(start-first==NULL) return; tmp=start-first; while(tmp) { printf( %c,tmp-c); tmp=tmp-next; } printf(\n); };;node *find(quee *start) { node *tmp; tmp=start-first; while(tmp-next!=NULL tmp-c=tmp-next-c) tmp=tmp-next; return tmp; }; ;int main(int argc, char* argv[]) { quee *n; node *p; n=init(); while(s!=0) { p=find(n); del(n,p); s--; } print(n); return 0; } ;POJ 1017;Packets;Packets;Packets;Packets;;Packets;Packets;Packets;Packets;Packets;Packets; 6) 放 1 * 1 并输出结果 if( b1 c1 ) { nTotal += ( b1 - c1 ) / 36; if(( b1 - c1) % 36 ) nTotal ++; } cout nTotal endl;;#include iostream.h int Contain1[4] = { 0, 7, 6, 5 }; int Contain2[4] = { 0, 5, 3, 1 }; int nTotal; void main() { int b1,b2,b3,b4,b5,b6; for(;;) { cinb1b2b3b4b5b6; if(b1==0 b2==0 b3==0 b4==0 b5==0 b6==0) break; nTotal = b6 + b5 + b4 + b3/ 4; if( b3 % 4) nTotal ++; int c1; //当前能放 1*1 木块的空格数目 c1 = b5 * 11; //每个放5*5的箱子,还能放11个 1 * 1 的木块 c1 += Contain1[b3 % 4] ; //加上3*3箱子里能放的数目 int c2; //当前能放 2*2 木块的空格数目(先不考虑将1*1的木块放在 // 2*2的空格里) c2 = b4 * 5; //每个放5*4的箱子,还能放5个 2 * 2 的木

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档