hdu5616(理解01揹包很好的題目)

2021-07-10 20:13:11 字數 552 閱讀 8767

這題一看到不就是01揹包嗎?直覺想到對不對!!!有木有!!!然而,01揹包我們都是正的掃一遍,這裡需要反的再掃一遍,而且揹包裡面不一定非要儲存背的物體的重量,還可以是記錄這個揹包有沒有用過哈~~~

首先要正的掃一遍,就是物品那端不放砝碼,只在另一端放砝碼,看有多少重量可以放到(這裡記錄的是該重量能否被訪問到,所以不需要搞什麼max)

之後就是反著掃一遍,在上面處理的dp結果減去相應的砝碼就ok了,比如減去a[i],如果dp[j]已經算了a[i],那就想到與不算a[i]咯,有人可能陷入死胡同,想對於j要計算吧a[i]放在物品那邊咋辦,在dp[j-a[i]]中不就計算了這個問題。如果沒有算a[i],那就是減去a[i]咯.

#include #include#include#include#includeusing namespace std;

const int inf=4020;

int t,n,m,a[30],c,dp[inf];

void sovle()

int main()

}return 0;

}

HDU5616 揹包 天平平衡問題

題目大意 有乙個只能判斷兩邊是否相等的天平,現在給你一些已知重量的砝碼,問你是否可以通過這些砝碼測量乙個任意給定的重量 input 即可以通過在天平兩側放一定數量的砝碼,使天平平衡。include define inf 0x3f3f3f3f using namespace std const int...

01 ,完全 揹包 理解篇

pku3624 f v 把第i件物品放入容量為v的揹包所獲得的價值 include include includeusing namespace std int max int a,int b int val 3405 c 3405 f 100 3500 int main for j v j 0 j...

01揹包之再理解

想要學習動態規劃,從01揹包問題入手,看了許多大牛的部落格,各種優化各種講解,講的都不錯,但是都是快速閱讀,不求甚解,幾天下來除了記住狀態轉移方程之外無甚收穫,而且學的囫圇吞棗,說會不算會,說不會又冤得慌,如鯁在喉,終於下定決心搞個清楚,梳理整齊。注意,這些東西都不是我自己的想法,只是想把看的理解的...