疊放箱子問題

2021-07-28 21:55:11 字數 1000 閱讀 5666

題意

某港口有一批貨櫃,將其編號,分別為1至n。每乙個箱子的外型尺寸都是一樣的,現在要將其中某些貨櫃疊放起來,貨櫃疊放的規則如下:

(1)每個貨櫃上最多只能直接疊放乙個貨櫃。 

(2)編號較小的貨櫃不能放在編號較大的貨櫃之上。 

(3)每個貨櫃都給出了自身的重量和可承受的重量,每個貨櫃之上的所有貨櫃重量之和不得超過該貨櫃的可承受的重量。

現在要求你程式設計,從中選出最多個貨櫃,使之在滿足以上條件的情況下疊放起來,即要求疊得盡可能地高。 

分析w[i]表示第i個箱子的重量。

p[i]表示第i個箱子的承受重量。

f(i,j)表示前i個箱子中最多可選出f(i,j)個疊放,還可承受重量j。 

f(i,j)=max。

varn,i,j,tj:longint;

w,p:array[0..1001]of longint;

f:array[0..1001,0..6000]of longint;

function max(x,y:longint):longint;

begin

if x>y then exit(x) else exit(y);

end;

begin

readln(n);

for i:=1 to n do

readln(w[i],p[i]);

fillchar(f,sizeof(f),0);

f[n,w[n]]:=1;

for i:=n-1 downto 1 do

begin

f[i]:=f[i+1];

for j:=0 to p[i] do

f[i,j+w[i]]:=max(f[i+1,j]+1,f[i,j+w[i]]);

end;

tj:=0;

for i:=0 to 6000 do

if f[1,i]>tj then tj:=f[1,i];

write(tj);

end.

疊放箱子問題

疊放箱子問題 description 某港口有一批貨櫃,將其編號,分別為1至n。每乙個箱子的外型尺寸都是一樣的,現在要將其中某些貨櫃疊放起來,貨櫃疊放的規則如下 1 每個貨櫃上最多只能直接疊放乙個貨櫃。2 編號較小的貨櫃不能放在編號較大的貨櫃之上。3 每個貨櫃都給出了自身的重量和可承受的重量,每個貨...

疊放箱子問題

疊放箱子問題 time limit 10000ms memory limit 65536k total submit 309 accepted 115 case time limit 1000ms description 某港口有一批貨櫃,將其編號,分別為1至n。每乙個箱子的外型尺寸都是一樣的,現在...

疊放箱子問題 DP

題目 某港口有一批貨櫃,將其編號,分別為1至n。每乙個箱子的外型尺寸都是一樣的,現在要將其中某些貨櫃疊放起來,貨櫃疊放的規則如下 1 每個貨櫃上最多只能直接疊放乙個貨櫃。2 編號較小的貨櫃不能放在編號較大的貨櫃之上。3 每個貨櫃都給出了自身的重量和可承受的重量,每個貨櫃之上的所有貨櫃重量之和不得超過...