DP 疊放箱子

2021-09-02 20:09:54 字數 1034 閱讀 5203

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

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

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

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

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

第一行是乙個正整數n,表示共有n個貨櫃(1≤ n ≤1000)。

以下共有n行,每行兩個正整數,中間用空格分隔,分別表示每個貨櫃的自身重量和可承受的重量,兩個數均為小於等於3000。

輸出最多可疊放的貨櫃總數。執行時間不超過去時10秒。

sample input

5  

19 15

7 13

5 7

6 8

1 2

sample output
4
其實就是變了形的揹包。

建議先看懂揹包問題

揹包問題:採藥

#include

#include

#include

#include

using

namespace std;

int n,m,maxx,ans,a[

1005];

int f[

1005][

6005

],b[

1005];

intmain()

}for

(register

int i=

0;i<=maxx;

++i)

ans=

max(ans,f[1]

[i])

;//找最大值

printf

("%d"

,ans)

;return0;

}

疊放箱子問題 DP

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

疊放箱子問題

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

疊放箱子問題

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