磁带最大利用率问题.pdfVIP

  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文档。上传文档
查看更多
磁带最大利用率问题.pdf

法实现题4-15 带最大利用率问题 问题描述:设有n 个程序{1,2,……,n}要存放在长度为L 的磁带上。程序i 存放在磁带 上的长度是li,1=i=n 。 程序存储问题要求确定这n 个程序在 带上的一个存储方案,使得能够在 带上存储尽 可能多的程序。在保证存储最多程序的前提下还要求磁带的利用率达到最大。 算法设计:对于给定的n 个程序存放在 带上的长度,计算 带上最多可以存储的程序数和 占用磁带的长度。 数据输入:由文件input.txt 给出输入数据。第1 行是两个正整数,分别表示文件个数n 和 带的长度L 。接下来的1 行中,有n 个正整数,表示程序存放在磁带上的长度。 结果输出:将计算的最多可以存储的程序数和占用 带的长度及存放在 带上的每个程序的 长度输出到文件output.txt 。第1 行输出最多可以存储的程序数和占用 带的长度;第2 行 输出存放在磁带上的每个程序的长度。 解答:本题可采用回溯法解决。 001 #include iostream 002 #include fstream 003 using namespace std; 004 005 006 templateclass Type 007 class Loading { 008 friend Type MaxLoading(Type [],Type,int,int [],int ); 009 private: 010 void Backtrack(int i); 011 int n, 012 * x, // 当前解 013 *bestx, // 当前最优解 014 r, 015 count; // 当前存储程序数 016 017 Type* l, 018 c, //磁带长度 019 cl, // 当前占用磁带长度 020 bestl; //最大利用 带长度 021 public: 022 int maxcount; //最大存储程序数 023 024 }; 025 026 templateclass Type 027 void LoadingType::Backtrack(int i) 028 { 029 if(i n) { 030 if(((count == maxcount) cl bestl) || count maxcount) { 031 for(int j = 1; j = n; j ++) 032 bestx[j ] = x[j ]; 033 bestl = cl; 034 maxcount = count; 035 } 036 return; 037 } 038 039 040 // 搜索子树 041 r--; 042 if(cl + l[i] = c) { 043 x[i] = 1; 044 cl += l[i]; 045 count++; 046 Backtrack(i+ 1); 047 cl -= l[i]; 048 count--; 049 } 050 051 if(count + r = maxcount) { 052 x[i] = 0; 053 Backtrack(i+ 1); 054 } 055 r++; 056 } 057 058 templateclass Type 059 Type MaxLoading(Type l[], Type c, int n, int bestx[],int maxcount) 060 { 061 LoadingType X; 062 X.x = new int [n+ 1]; 063 X.l = l; 064 X.c = c; 065 X.n = n; 066 X.r = n; 067 X.bestx = bestx; 068 X.bestl = 0; 069

文档评论(0)

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

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

1亿VIP精品文档

相关文档