dp專題 神奇的口袋

2021-09-07 20:32:35 字數 710 閱讀 8173

有乙個口袋容積為m,有n個物品,題目的體積為a1,a2,a3…an。把m裝滿有多少種不同的裝法。

遞迴:

int dfs(int n, int m)/*從n個物品中選出總體積為m的選法*/

遞推:dp[i][j]=dp[i-1][j]+(j>=a[i]?dp[i-1][j-a[i]]:0);

初始條件:dp[i][0]=1; (0<=i<=n)/*全部不選*/

遞迴:(可以轉化成記憶化遞迴)

#include

using

namespace std;

int a[

100]

;int dp[

100]

[100]=

;int

main()

for(

int i=

1;i<=n;i++)}

cout<[m]

}遞推:

#include

using

namespace std;

int a[

100]

;int

dfs(

int n,

int m)

intmain()

cout<<

dfs(n, m)

}

入門DP 神奇的口袋

總time limit 10000ms memory limit 65536kb description 有乙個神奇的口袋,總的容積是40,用這個口袋可以變出一些物品,這些物品的總體積必須是40。john現在有n個想要得到的物品,每個物品的體積分別是a 1,a2 a n。john可以從這些物品中選擇...

神奇的口袋(回溯 DP

有乙個神奇的口袋,總的容積是40,用這個口袋可以變出一些物品,這些物品的總體積必須是40。john現在有n個想要得到的物品,每個物品的體積分別是a1,a2 an。john可以從這些物品中選擇一些,如果選出的物體的總體積是40,那麼利用這個神奇的口袋,john就可以得到這些物品。現在的問題是,john...

poj 2755 神奇的口袋 dp

poj 2755 神奇的口袋 dp 總時間限制 10000ms 記憶體限制 65536kb 描述 有乙個神奇的口袋,總的容積是40,用這個口袋可以變出一些物品,這些物品的總體積必須是40。john現在有n個想要得到的物品,每個物品的體積分別是a1,a2 an。john可以從這些物品中選擇一些,如果選...