關於揹包問題的一點點筆記(隨時補充)

2021-08-07 11:23:41 字數 553 閱讀 2212

01揹包(每種物品只有一件,分取和不取兩種情況):  

i:1~n     j:v~v[i]     f[j]=max(f[j],f[j-v[i]]+w[i])

完全揹包(每種物品無限件,問如何取能使體積為v的揹包價值最大):

i:1~n     j:v[i]~v     f[j]=max(f[j],f[j-v[i]]+w[i])

多重揹包(每種物品有限件):i:1~n    k:1~p[i](p[i]表示物品的件數)    j:v~v[i]     f[j]=max(f[j],f[j-v[i]]+w[i])

其中,i表示第i件物品,j表示體積

注意:01揹包,完全揹包和多重揹包的一維陣列狀態轉移方程相同,j(體積)的迴圈次序有區別

許多揹包問題都是由01揹包加以轉化而來!多重揹包的件數列舉要在第二層迴圈!

經典例題:洛谷p1048  採藥(01揹包)      洛谷p1616 瘋狂的採藥(完全揹包)      洛谷p1049  裝箱問題(01揹包)

洛谷p1417  烹調方案(01揹包)等        洛谷p1833  櫻花(完全揹包、多重揹包)

oracle的一點點小筆記

1 修改sys密碼的方法 用ora dba組的使用者進系統,在 命令下 sqlplus nolog sql connect as sysdba sql alter user sys identified by sdfasd 1 2 如何在資料字典中利用oracle 語句查詢出已經建立的儲存過程,儲存...

一點點筆記 手機位置定位

通過lac location area code,位置區域碼 和cid cell identity,基站編號,是個16位的資料 範圍是0到65535 可以查詢手機接入的基站的位置,從而初步確定手機使用者的位置。獲取自己手機的lac和cid方法 android 獲取方法 android 撥號 4636...

關於Lisp的一點點

以後寫的語言相關應該主要是ruby 也許還有少數的c 了,所以在這裡先記錄一點關於lisp的東西。首先是乙個小故事 在 ilc 2002 大會上前lisp大神,當今的python倡導者peter norvig,由於某些原因,做乙個類似於馬丁路德在梵蒂岡宣揚新教的主題演講,因為他在演講中大膽地聲稱py...