牛客網 TaoTao要吃雞 0 1揹包變形

2022-06-04 04:12:10 字數 813 閱讀 1100

題意 :題目鏈結

分析 :

如果沒有 bug (即 h == 0 的時候)就是乙個普通的 0 / 1 揹包

需要討論一下 h != 0 的情況

此時有就相當於有物品是有特權的

而且揹包裝有特權的物品根據題目的要求是應當最後裝的

也就是說特權物品裝完之後揹包將不再可裝

所以特權物品肯定是只有乙個的

資料量並不大,所以可以去列舉這個特權物品

那麼如何知道在  沒有裝特權物品  之前的最佳選擇方案?

答案就是用最小的可剩空間留給特權物品,然後其他空間去跑 0/1 揹包

最小的可剩空間當然就是 h + m - 1,只留乙個單位空間給特權物品即可

最後除了列舉的物品,其他的物品去跑揹包容量為 h + m - 1 的 0/1 揹包

#includeusing

namespace

std;

const

int maxn = 1e2 + 10

;int w[maxn], v[maxn], dp[maxn<<1

];int

c, n, m, h;

int main(void

) }

ans = max(ans, dp[c-1] + v[k]);///

最後維護最優值

} }

printf(

"%d\n

", ans);

}return0;

}

view code

TaoTao要吃雞 (牛客 01揹包)

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld taotao的電腦帶不動絕地求生,所以taotao只能去玩pc版的荒野行動了,和絕地求生一樣,遊戲人物本身可以攜帶一定重量m的物品,裝備揹包 之後可以多攜帶h h為0代...

TaoTao要吃雞(01揹包)

題目描述 taotao的電腦帶不動絕地求生,所以taotao只能去玩pc版的荒野行動了,和絕地求生一樣,遊戲人物本身可以攜帶一定重量m的物品,裝備揹包 之後可以多攜帶h h為0代表沒有裝備揹包 重量的東西。玩了幾天 taotao發現了乙個bug,當裝備揹包之後,如果可攜帶重量沒有滿,就 可以拿乙個任...

TaoTao要吃雞(01揹包)

題目戳我 思路 當h 0時直接套01揹包即可。當h 0時能卡bug,我們假設第k個 是卡bug放進去的,那麼我們只需用01揹包求出承受m h 1重量時的最大價值,那麼此後的最大價值為dp m h 1 第k個價值,故只需1 n列舉 define first f define second s defi...