越來越發現自己的程式設計功底很差,於是近期打算惡補下。看到一題目,初見覺得很簡單,但是實際程式設計的時候,可能是由於自己的基本功太弱的原因吧,還是花費了很長的時間的。題目如下:
有一批貨櫃要裝入乙個載質量為c的貨船種,每個貨櫃的質量由使用者自己輸入指定,在貨船的裝載體積不限的前提下,如何裝載貨櫃才能盡可能多地的將貨櫃裝入貨船中。
看到該題,第一想到的就是貪心演算法。關鍵在於將問題抽象出來,其實每個箱子是有兩個特性的。箱子的質量以及箱子的編號(隱藏的)。抽象出這兩點就好辦多了。實現將箱子按質量排序,在排序的過程中有點很重要,那就是在按質量移動箱子的時候,要讓箱子的編號跟著一起移動。
完整**如下:
#include "stdio.h"
px(int h_1,int h1_1,int n_1,int n_2)
//氣泡排序///
for (i_1=0;i_1<8;i_1++)}}
for (i_1=0;(i_1<8)&&(h_1[i_1]<=n_2);i_1++)}
int main()
;int h1[8]=;
int n; //貨物的種數
printf("請輸入船的最大裝載\n");
scanf("%d",&c);
printf("請輸入8種貨物的質量:\n");
for (i=0;i<8;i++)
px(h,h1,8,c);//對貨物的質量排序,並且用陣列h1儲存貨物的箱子號(下表)}
我發現我的變數命名,不是一般的稀癟。
貪心演算法之最優裝船
在乙個固定重量的貨船中裝最大重量的貨櫃,忽略空間 如最大重量是15 而我有五個箱子重量分別為 2 4 66 8 60 那麼我裝入的箱子應該為第1 2 4個 我現在有兩個陣列,乙個w 5 儲存這五個箱子的重量另乙個x 5 儲存這五個箱子的下標 當我的w 5 安找遞增的順序排列後,我只需要順序相加小於我...
裝船問題 貪心演算法
王小二畢業後從事船運規劃工作,吉祥號貨輪的最大載重量為m噸,有10種貨物可以裝船。第i種貨物有w iw i wi 噸,總價值是p ip i pi 王小二的任務是從10種貨物中挑選若干噸上船,在滿足貨物總重量小於等於m的前提下,運走的貨物的價重比最大。input 輸入資料的第一行有乙個正整數m 0 m...
裝船問題 貪心演算法
description 王小二畢業後從事船運規劃工作,吉祥號貨輪的最大載重量為m噸,有10種貨物可以裝船。第i種貨物有wi噸,總價值是pi。王小二的任務是從10種貨物中挑選若干噸上船,在滿足貨物總重量小於等於m的前提下,運走的貨物的價重比最大。input 輸入資料的第一行有乙個正整數m 0 m 10...