题目描述:

设有n个程序{1,2,...,n}要存放在长度为L的磁带上。程序i存放在磁带上的长度是li,1<=i<=n.
程序存储问题要求确定这n个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序。在保证存储最多程序的前提下,
要求磁带的利用率最大。
编程任务:对于给定的n个程序存放在磁带上的长度,编程计算磁带上最多可以存储的程序数和占用磁带的长度。
提示:利用贪心策略:最短程序优先。求得最多可以存储的程序个数m后,再求最大利用率。问题转化为第5章中的装载问题,但m已知。
 输入描述
第一行是2个正整数,分别表示文件个数n和磁带长度L。第二行中,有n个正整数,表示程序存放在磁带上的长度。
 输出描述
第一行输出最多可以存储的程序数和占用磁带的长度;第二行输出存放在磁带上的每个程序的长度。
 输入样例

9 50
2 3 13 8 80 20 21 22 23

输出样例

5 49
2 3 13 8 23

java代码如下:

import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args){int []a = new int[1001];int n,c, max= 0;int num = 0;Scanner input = new Scanner(System.in);n = input.nextInt();c = input.nextInt();for(int i=1;i<=n;i++){a[i] = input.nextInt();//System.out.println(a[i]);    }//输入数据,第一行是2个正整数分别是文件个数n和磁带长度L,接下来的i行中,有n个整数,表示程序存储所需的磁带长度//对输入的程序按长度进行排序for(int i =1;i <= n;i++) {for(int j = 1; j<= n-i;j++) {if(a[j] > a[j+1]) {int temp = a[j];a[j] = a[j+1];a[j+1] = temp;}}}for(int i = 1;i <= n;i ++){System.out.println(a[i]+ " ");c -= a[i ];if(c >= 0)num++;else break;}System.out.println(num);}}

参考文章:

https://blog.csdn.net/u010862301/article/details/40480657

https://blog.csdn.net/bensonrachel/article/details/78595809

算法设计与分析 - 磁带存储程序 - 贪心算法(java实现)相关推荐

  1. 算法设计与分析 实验二 贪心算法

    实验2.<贪心算法实验> 一.实验目的 了解贪心算法思想 掌握贪心法典型问题,如背包问题.作业调度问题等. 二.实验内容 编写一个简单的程序,实现单源最短路径问题. 编写一段程序,实现找零 ...

  2. 算法设计与分析 实验三 贪心算法

    一. 实验目的和要求 1.掌握贪心算法的基本思想. 2.学习利用贪心算法设计和实现算法的方法. 3.了解利用替换法证明贪心策略是否能获得全局最优解的过程. 4.熟练掌握贪心算法在两个典型图搜索中的应用 ...

  3. 计算机算法设计与分析考试题,《计算机算法设计与分析》习题及答案

    <计算机算法设计与分析>习题及答案 一.选择题 1.二分搜索算法是利用( A )实现的算法. A.分治策略 B.动态规划法 C.贪心法 D.回溯法 2.下列不是动态规划算法基本步骤的是( ...

  4. 算法设计与分析——活动安排问题(Java)

    [问题]设有n个活动的集合E={1,2,-,n},其中每个活动都要求使用同一资源(如演讲会场),而在同一时间内只有一个活动能使用这一资源.每个活动  都有一个要求使用该资源的起始时间  和一个结束时间 ...

  5. 计算机算法设计与分析期末考试试卷,算法设计与分析期末考试卷及答案a

    <算法设计与分析期末考试卷及答案a>由会员分享,可在线阅读,更多相关<算法设计与分析期末考试卷及答案a(15页珍藏版)>请在人人文库网上搜索. 1.一填空题(每空2分,共30分 ...

  6. 【算法设计与分析】14 分治算法的一般描述和分析方法

    本文主要描述分治算法的一般描述和分析方法.衔接上一篇文章:[算法设计与分析]13 分治策略的设计思想 文章目录 1 分治算法的一般性描述 1.1 分支算法的时间分析 1.2 两类常见的递推方程与求解方 ...

  7. 算法设计与分析——淘汰赛冠军问题(Java)

    [问题]假设有  个选手进行竞技淘汰赛,最后决出冠军的选手,请设计竞技淘汰比赛的过程. [想法]竞技淘汰比赛最自然的想法是将所有选手分成两部分,每部分决出胜者后,让这两个胜者进行比赛,再决出最后的冠军 ...

  8. 算法设计与分析 实验三 动态规划算法

    实验3.<动态规划算法实验> 一.实验目的 掌握动态规划方法贪心算法思想 掌握最优子结构原理 了解动态规划一般问题 二.实验内容 编写一个简单的程序,解决0-1背包问题.设N=5,C=10 ...

  9. 算法设计与分析(1)------算法概述

    什么是算法? 在数学和计算机科学之中,算法/算则法(Algorithm)为一个计算的具体步骤,常用于计算.数据处理和自动推理(WiKipedia) 算法不仅仅在计算机科学中,在数学中也有算法的概念 作 ...

最新文章

  1. 怎么用express搭建一个服务器
  2. (转载)IE 浏览器的创新
  3. hash table(开放寻址法-二次探查实现的哈希表)
  4. LintCode 373: Partition Array
  5. Spring MVC+Mybatis 多数据源配置
  6. android底层重构,【理论】【转】Android项目重构之路:实现篇
  7. 极酷WIFI深度剖析免费WIFI
  8. 简单的学生库管理系统
  9. gitee怎么看用户名_怎么优雅的写博客 Typora + picGo
  10. hihocoder-Week195-奖券兑换
  11. 北航计算机专业报录比,北京航空航天大学考研报录比数据查询
  12. R数据框操作 fourth day
  13. ZZNU-正约数之和(DP)
  14. Matlab画天球坐标图,知道方位角和高度角
  15. 自己搭建云存储(WIFI路由器上接硬盘)
  16. html svg标签中插入img image标签不显示的问题
  17. RTU厂家,RTU品牌.遥测终端机厂家,遥测终端机品牌,DTU厂家DTU品牌
  18. 极客日报:腾讯反舞弊通报近 70 人被辞退;库克遭陌生可疑女子威胁;英伟达回应放弃收购 ARM 传闻
  19. roc曲线spss怎么做_SPSS单因素ROC曲线及多因素联合诊断ROC曲线绘制(原创手把手) - 医学统计和生物统计讨论版 -丁香园论坛...
  20. 变电站蓄电池组全在线充放电测试应用案例

热门文章

  1. C++主流IDE推荐
  2. flv.js播放视频时遇到的问题
  3. MATLAB软件基础学习篇——003
  4. 短期python培训机构
  5. 服务计算作业二——GO语言TDD实践报告
  6. javascript的基础-1
  7. vue 视频 时间进度条组件
  8. 利用R语言如何判别和分类
  9. 开篇“给自己定一个目标,明年7月去实现。希望不是一时的兴起。”
  10. EurekaServer这几个错误 你可以这样解决