最優裝載(C語言)

2021-09-23 14:25:46 字數 824 閱讀 7940

最優裝載(c語言)

題目描述

使用貪心演算法求解最優裝載問題。

輸入每組輸入包括兩部分,

第一行包括貨櫃個數n,以及船的裝載量c。

接下來n行每行則輸入貨櫃編號以及其重量。

輸出輸出包括兩行,第一行為最多可裝載的貨櫃數量 。

第二行則為最優裝載方案對應的所有貨櫃編號(用空格隔開) 。

樣例輸入 copy

5 10

1 12 2

3 34 4

5 5樣例輸出 copy

41 2 3 4

這道題是貪心演算法中一道比較經典的題型,思路(可以參考一下~和部分揹包差不多):

1.定義結構體儲存資料

2.利用sort函式(因為c語言中沒有具體的sort所以自己寫乙個,這個sort演算法不是最佳的,可自己優化哈~)按質量由小到大排序

3.乙個個往裡面放,當放入第i個超過總的質量和的時候break

#include#includestruct box;//在這裡定義乙個結構體,分別儲存送進來的id和物體重量

struct box boxs[100];

int x[100];//用於儲存哪些id被選中了

int v;

void sort(int n1,int n2)

}}void solve(int m,int n)else

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

for(i=0;i}int main()

solve(co,num);

return 0;

}

最優裝載問題

現有n個貨櫃要裝進兩艘載重分別為c1,c2的船,其中第i個貨櫃重w i 並且題目保證 i 1nw i c1 c2 問是否存在乙個合理的裝載方案,使得這n個貨櫃都裝進兩艘船,若有請找出一種方案。題目分析 方法1 對於每個貨櫃,都有3種狀態 裝到船1,裝到船2,或者不裝。按照這個思想我們可以列舉所有的n...

最優裝載問題

題目描述 給定一艘容量為c的船,給定一批貨物,貨物i的重量是wi,要求在船不超重的前提下,將盡可能多的貨物裝上船。思路 盡可能多的裝上船,就像活動安排問題一樣,先對貨櫃的重量從小到大排序,在貨櫃重量不超過輪船載重量的情況下先裝輕的,裝上之後在用乙個布林型陣列賦值為1,表示裝上船,方便輸出 inclu...

最優裝載 貪心

最優裝載問題可用貪心演算法求解。採用重量最輕者先裝的貪心選擇策略,可產生最優裝載問題的最優解。template class type void loading int x type w type c,int n include h using namespace std const int max ...