兩道貪心演算法題

2021-10-12 07:02:06 字數 1272 閱讀 5979

假設有n項物品,大小分別為s​1、s​2​​ 、…、s​i、…、sn​​ ,其中s​i為滿足1≤s​i≤100的整數。要把這些物品裝入到容量為100的一批箱子(序號1-n)中。裝箱方法是:對每項物品, 順序掃瞄箱子,把該物品放入足以能夠容下它的第乙個箱子中。請寫乙個程式模擬這種裝箱過程,並輸出每個物品所在的箱子序號,以及放置全部物品所需的箱子數目。

輸入第一行給出物品個數n(≤1000);第二行給出n個正整數s​i​​ (1≤s​i​​ ≤100,表示第i項物品的大小)。

按照輸入順序輸出每個物品的大小及其所在的箱子序號,每個物品佔1行,最後一行輸出所需的箱子數目。

8

60 70 80 90 30 40 10 20

60 1

70 2

80 3

90 4

30 1

40 5

10 1

20 2

5

#includeusing namespace std;

int main();

for(int i=0;i>x;

for(int j=1;j<=n;j++)

break;}}

}cout《假定乙個有n個活動(activity)的集合s=,這些活動使用同乙個資源(例如同乙個階梯教室),而這個資源在某個時刻只能供乙個活動使用。每個活動a​i​​ 都有乙個開始時間s​i​​ 和乙個結束時間fi,其中0<=s​i​​ =f​j​​ 或s​j​​ >=f​i​​ ,則a​i​​ 和a​j​​ 是相容的。在活動選擇問題中,我們希望選出乙個最大相容活動集。

第一行乙個整數n(n≤1000);

接下來的n行,每行兩個整數,第乙個s​i​​ ,第二個是fi(0<=s​i​​ 輸出最多能安排的活動個數。

113 51 4

12 14

8 12

0 68 11

6 10

5 73 8

5 92 13

4
安排的4個活動為1 4, 5 7, 8 11和12 14。

#includeusing namespace std;

typedef structaa;

bool cmp(aa a,aa b)

sort(s,s+n,cmp);

//for(int i=0;iint sum=0,t=0;

for(int i=0;i}

cout<}

兩道面試演算法題

最近面試 兩道演算法題 說難不難 要寫全對也不容易 很慚愧 我沒有一次寫對 第一道 無序int陣列 找到中位數 void swap int a,int b int get kth number vector num,int k,int start,int end 一次劃分結束 index i if ...

兩道String演算法題賞析

今天leecode看到了道初級演算法題。感覺思維很精妙。特此記錄下來以供學習使用 242.有效的字母異位詞 字母異位詞就是兩個字串的字母相同,個數相同,順序可以不管。我的思維就是 使用map統計每乙個字母的個數,然後遍歷兩個map。進行對比。兩個map的巢狀遍歷,時間複雜度o n 空間複雜度是o n...

每天兩道演算法題(一)

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class solution continue for int j 1 j public class solution ...