python第四章上機實踐 第四章上機實踐報告

2021-10-12 11:10:24 字數 635 閱讀 8027

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

輸入格式:

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

輸出格式:

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

輸入樣例:

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

6 50

2 3 13 8 80 20

輸出樣例:

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

我的貪心策略:

先選小的,再選大的。

證明:假設磁帶a長 w1,b長 w2,且w1>w2,若最優解包含w1而不包含w2則可以將w1替換為w2,則包含w2的一組解也是最優解,證畢。

複雜度分析:

空間複雜度為o(n),因為要用n個位置的陣列存物品

時間複雜度為o(nlogn),因為用到sort排序,排序複雜度為nlogn且此為最高次冪的時間花費。

心得第一題不是很難但是需要注意一下小問題例如題目沒說n多大時候,陣列就不能隨便亂猜,乾脆就開到最大即可,在比賽中可避免罰時。

第四章上機

上機3 not in 關鍵字 使用not in 關鍵字的子查詢來查詢為參加 的課程最近一次考試的再讀學生名單 select studentname from student as stu,result as res where stu.studentno res.studentno and exam...

第四章上機

演算法實現 include include include include include using namespace std 函式宣告 int input 輸入性別 int input race 輸入種族 int input occupation int 輸入職業 void output at...

第四章上機實踐報告

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