zoukankan      html  css  js  c++  java
  • 算法第四章实践报告

    一 . 实践题目

    7-3 程序存储问题

    二 . 问题描述

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

    输入格式:

    第一行是2 个正整数,分别表示文件个数n和磁带的长度L。接下来的1行中,有n个正整数,表示程序存放在磁带上的长度。

    输出格式:

    输出最多可以存储的程序数。

    输入样例:

    6 50 
    2 3 13 8 80 20

    输出样例:

    5
    

    三 . 算法描述

    1.贪心策略:

    将磁带长度从小到大排好序,设一个sum = L,剩余长度大于即将被减的磁带长度,则将磁带从L中减去,每减一次计数器加一。

    2.代码

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int main(){
        int n, L;
        cin >> n >> L;
        int a[n];
        for(int i = 0; i < n; i++){
            cin >> a[i];
        }
        int num = 0;
        int sum;
        sum = L;
        sort(a, a+n);
        for(int i = 0; i < n; i++){
            if(sum >= a[i]){
                sum = sum - a[i];
                num++;
            } 
        }
        cout << num << endl;
        return 0;
    }

    四 . 算法时间空间复杂度

    时间复杂度:O(nlogn)

    调用了快排

    空间复杂度:O(n)

    一维数组

    五 . 心得体会

    一开始写的时候我和同伴都忘记了sort函数的头文件,翻了笔记之后加了上去,以后要注意这一点。

  • 相关阅读:
    SQL SERVER 2016研究三
    SQL SERVER 2016研究二
    SQL SERVER 2016研究一
    codeforce div2 426 D. The Bakery
    bzoj2190: [SDOI2008]仪仗队
    长路
    codechef AUG17 T5 Chef And Fibonacci Array
    codechef AUG17 T4 Palindromic Game
    codechef AUG17 T3 Greedy Candidates
    汕头市队赛 SRM10 dp只会看规律 && bzoj1766
  • 原文地址:https://www.cnblogs.com/Ygrittee/p/10039444.html
Copyright © 2011-2022 走看看