百練 2755 神奇的口袋

2021-07-15 04:48:56 字數 819 閱讀 2355

遞迴

#include#include#include#includeusing namespace std;

const int maxn=30;

int n,d[maxn];

int dp(int w,int n)

int main()

人人為我動歸

狀態定義:揹包容量為i時,選完前j件物品後,能達到該容量的最大方法數。

#include#include#include#includeusing namespace std;

const int maxn=50+5;

int a[maxn],f[maxn][maxn];

int main()

f[0][0]=1;

for(int i=1;i<=40;i++)

}printf("%d\n",f[40][n]);

return 0;

}

我為人人動歸

每次取乙個物品,然後更新能到達的揹包的最大數。

#include#include#include#includeusing namespace std;

const int maxn=50+5;

int a[maxn],f[maxn];

int main()

f[0]=1;

f[a[1]]=1;

for(int i=2;i<=n;i++)

}printf("%d\n",f[40]);

return 0;

}

百練 2755 神奇的口袋

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

百練 2755 神奇的口袋

第一種解法是很經典的動態規劃,對於值域較小的題目,還可以採用第二種方法,考慮對值域空間 即對容積的可達性進行動態規劃。這道題裡面採用第二種解法還會有空間上的優化。有時把值域作為一種狀態不單單是一種解法,還有可能是唯一的解法。如hdu 1574 rp問題 描述有乙個神奇的口袋,總的容積是40,用這個口...

神奇的口袋(百練2755)

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