【贪心法】程序存储问题

简介: 【贪心法】程序存储问题

 题目描述:

设有n个程序{1,2,…, n }要存放在长度为L 的磁带上。程序i存放在磁带上的长度是li,1≤i≤n 。程序存储问题要求确定这n个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序。

编程任务:

  对于给定的n 个程序存放在磁带上的长度,编程计算磁带上最多可以存储的程序数。

数据输入:

  (由文件input.txt 给出输入数据。)第一行是2个正整数,分别表示文件个数n 和磁带的长度L。接下来的1行中,有n个正整数,表示程序存放在磁带上的长度。

结果输出:

  将编程计算出的最多可以存储的程序数输出(到文件output.txt)

输入文件示例输出文件示例

input.txt                        output.txt

6 50                             5

2 3 13 8 80 20

注:若题目要求含上述括号中橙色字体,即将代码第11、12行注释解除,让其执行即可。

代码如下:

#include <iostream>
#include <algorithm>//sort()头文件 
#include <fstream>//文件读写操作头文件 
using namespace std;
#define N 10000
bool cmp(int x,int y){
  return x<y;
}
int main(){
  //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
  int n,L; cin>>n>>L;//输入文件个数,磁带长度
  int Long[N];
  for(int i=0;i<n;i++){
    cin>>Long[i];
  } 
  sort(Long,Long+n,cmp);//以升序排列 
  int flag=0;//记录存储第flag个程序,flag从0开始(数组存储从0开始) 
  int LongSum=0;//记录存储的程序长度和 
  int Num=0;//记录存储的程序个数 
  while(flag<n){
    LongSum=LongSum+Long[flag];//求和 
    if(LongSum>L) break;//超出磁带长度,跳出循环 
    else Num++;
    flag++; 
  }
  cout<<Num<<endl;
  return 0;
}

image.gif


目录
相关文章
|
SQL 前端开发 JavaScript
分享几个开源Java写的博客系统
分享几个开源Java写的博客系统
5924 0
分享几个开源Java写的博客系统
|
XML 数据安全/隐私保护 数据格式
批量获取FreeSWITCH所有分机号及其密码
批量获取FreeSWITCH所有分机号及其密码
234 0
|
SQL 存储 Java
Sharding-JDBC 如何实现分片
以上是V 哥在教学过程中实现分片的示例步骤,Sharding-JDBC能够实现SQL的分片操作,将请求路由到正确的数据库和表中,从而实现数据的水平扩展,这是在使用例如 MySQL作为数据库的场景中经常会使用到的,但如果你的企业正在考虑分布式数据库迁移,V 哥建议可以考虑 TiDB 或 OceanBase 这样的分布式数据库,因为它们天然就支持分布式,而不需要考虑这些。
296 0
|
应用服务中间件 网络架构
kodexplorer私有云本地部署,低成本内网穿透教程
可搭建:网站或个人博客;类似于某云的网盘;远程路由器(等家电)控制,内网的服务穿透至外网;迅雷远程下载;家庭云存储中心等。准备工作: 1、 可以插U盘的路由器(推荐二手小米mini,40包邮不能再多了) 2、 将路由器刷为最新的老毛子固件(参见恩山无线论坛) 3、 掏钱买VPS或者寻找一个免费的FRPS服务器 搭建步骤简述: 1、 路由器,联网,插U盘(事先格式化为EXT4格式,可以用diskgenius免费版)。
7002 0
|
缓存 安全 数据库
构建简单博客系统:从数据库设计到性能优化实践
本文以构建简单博客系统为例,详细介绍了从数据库设计与建模到性能调优与扩展的全过程。通过丰富的代码示例,读者将全面了解如何设计数据库模型、实现数据库操作和查询优化,以及如何实现用户认证与权限控制,最终实现一个高效、安全的博客系统。
633 0
|
SQL 安全 网络安全
直播软件源码开发搭建提高安全性方案
直播软件源码平台的防火墙功能是极为重要,且不可或缺的,它的加入有效提高了直播软件源码平台的安全性,保护了用户的信息,为用户构建一个绿色安全的直播软件平台。
直播软件源码开发搭建提高安全性方案
|
Android开发 iOS开发
Flutter应用开发,系统样式改不了?SystemChrome 状态栏、导航栏、屏幕方向……想改就改
Flutter应用开发,系统样式改不了?SystemChrome 状态栏、导航栏、屏幕方向……想改就改
|
机器学习/深度学习 算法 安全
隐语v0.7版本升级,功能详情一览
隐语v0.7版本升级,功能详情一览
467 0
|
存储 Prometheus 运维
阿里云ES全观测引擎TimeStream时序增强功能重磅发布,助力时序场景实现最佳实践
阿里云ES全观测引擎TimeStream时序增强功能最新发布,在云原生ELK全托管基础上,通过TimeStream时序增强功能插件,可实现高性能、低成本时序数据存储和查询分析。本文介绍TimeStream适用场景、功能优势、性能测试结果和实践案例
2661 0