最優裝載(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 ...