PAT 2 09 裝箱問題模擬(C語言實現)

2021-06-26 02:26:36 字數 985 閱讀 6244

題目描述:

假設有n項物品,大小分別為s1, s2, …, si, …, sn,其中si為滿足1<= si

<=100的整數。要把這些物品裝入到容量為100的一批箱子(序號1~n)中。裝箱方法是:對每項物品, 順序掃瞄箱子,把該物品放入足以能夠容下它的第乙個箱子中。請寫乙個程式模擬這種裝箱過程,並輸出每個物品所在的箱子序號,以及放置全部物品所需的箱子數目。

輸入格式說明:

輸入第1行給出物品個數n(<=1000),第2行給出n個正整數si(1 <= si

<= 100,表示第i項物品的大小)。

輸出格式說明:

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

樣例輸入與輸出:

序號輸入輸出

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

2

6

100 90 80 70 60 50

100 1

90 2

80 3

70 4

60 5

50 6

6

3

1

2

2 1

1

解答說明:

針對每一項物品,順序掃瞄箱子,如果箱子能放得下,記錄該物品所在的箱子,並將該箱子的容量更新。

原始碼:

#includeint main(void)

else

} }printf("%d\n",maxcount);

return 0;

}

2 09 裝箱問題模擬(20)

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 假設有n項物品,大小分別為s1,s2,si,sn,其中si為滿足1 si 100的整數。要把這些物品裝入到容量為100的一批箱子 序號1 n 中。裝箱方法是 對每項物品,順序掃瞄箱子,把該物品放...

(C語言)PAT乙等1001 「3n 1問題」

對任何乙個正整數 n,如果它是偶數,那麼把它砍掉一半 如果它是奇數,那麼把 3n 1 砍掉一半。這樣一直反覆砍下去,最後一定在某一步得到 n 1。卡拉茲在 1950 年的世界數學家大會上公布了這個猜想,傳說當時耶魯大學師生齊動員,拼命想證明這個貌似很傻很天真的命題,結果鬧得學生們無心學業,一心只證 ...

模擬退火演算法(SA)求解TSP 問題(C語言實現)

這篇文章是之前寫的智慧型演算法 遺傳演算法 ga 粒子群演算法 pso 的補充。其實 我老早之前就寫完了,今天恰好重新翻到了,就拿出來給大家分享一下,也當是回顧與總結了。首先介紹一下模擬退火演算法 sa 模擬退火演算法 simulated annealing,sa 演算法最早是由metropolis...