第四章上機實踐報告

2022-09-10 02:33:14 字數 850 閱讀 1547

4-1 程式儲存問題 (40 分)

設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是 li,1≤i≤n。 程式儲存問題要求確定這n 個程式在磁帶上的乙個儲存方案, 使得能夠在磁帶上儲存盡可能多的程式。 對於給定的n個程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。

第一行是2 個正整數,分別表示檔案個數n和磁帶的長度l。接下來的1行中,有n個正整數,表示程式存放在磁帶上的長度。

輸出最多可以儲存的程式數。

在這裡給出一組輸入。例如:

6 50 

2 3 13 8 80 20

在這裡給出相應的輸出。例如:

5
貪心策略:

給輸入的磁帶長度按從小到大排序,依次選擇磁帶,直到放不下

具體**:

#include #include 

using

namespace

std;

intmain()

sort(arr,arr+n);

int k=0

;

int count=0

;

for(int i=0;i)

}cout

<}

時間複雜度:

使用了sort函式,時間複雜度為 o(nlogn)

心得體會:

通過對貪心演算法的學習,我認為貪心演算法的關鍵是找準貪心策略,使用正確的貪心策略才能夠得到最優解

第四章上機實踐報告

實踐題目 4 2 刪數問題 110 分 給定n位正整數a,去掉其中任意k n 個數字後,剩下的數字按原次序排列組成乙個新 的正整數。對於給定的n位正整數a和正整數 k,設計乙個演算法找出剩下數字組成的新數最 小的刪數方案。輸入格式 第 1 行是1 個正整數 a。第 2 行是正整數k。輸出格式 輸出最...

第四章上機實踐報告

刪數問題 110 分 給定n位正整數a,去掉其中任意k n 個數字後,剩下的數字按原次序排列組成乙個新 的正整數。對於給定的n位正整數a和正整數 k,設計乙個演算法找出剩下數字組成的新數最 小的刪數方案。第 1 行是1 個正整數 a。第 2 行是正整數k。輸出最小數。在這裡給出一組輸入。例如 178...

第四章上機實踐報告

一 實踐題目 二 題目描述 給定一串串行,每次取兩個數的值加起來,然後把兩個數取出來,將兩個數加起來的值放入序列 三 演算法描述 題目大意其實類似哈夫曼編碼,只是他還要再求乙個最大值的 因此進行兩次操作,一次每次都是取最大的兩個數,另一次每次都是取最小的兩個數 每次取到的兩個最大或者最小的數a b進...