1023 簡單0 1揹包? lzy的遊戲

2021-08-29 18:50:38 字數 712 閱讀 7188

傳送門

分析這轉化,真是夠可以的

首先我們需要得出乙個結論:無論我們怎麼選,最後肯定都有一種選法滿足條件(證明的話,感性理解一下,假設我們現在知道最後打出去的牌是哪些,那我們一定可以調整打牌的順序,使其滿足條件)

然後在此基礎上我們就可以直接使用0/1揹包

將傷害值看做是原牌的價值,魔法值看做是原牌的體積

**

#include

#define in read()

#define n 100009

using

namespace std;

inline

intread()

int n,m;

int val[n]

,c[n]

,f[n]

;int

main()

for(i=

1;i<=n;

++i)

for(j=n;j>=c[i]

;--j)

f[j]

=max

(f[j]

,f[j-c[i]

]+val[i]);

int ans=-1

;for

(i=1

;i<=n;

++i)

ans=

max(ans,f[i]);

cout

}

簡單0 1揹包

第一次部落格求不噴不噴不噴!有乙個容量為v的揹包,要裝進n個物品,第i個物品的費用為ci,價值為wi,要怎樣選擇才可以使花費不超過揹包容量的同時包裡的總價值最大?每個物品只能放一次 當時剛接觸c 的我剛拿到題目就蒙逼了 如果乙個乙個列舉的話有很多種組合,想想心都累。所以就要利用動態規劃思想。什麼是動...

簡單01揹包

time limit 1000ms memory limit 65536k 有疑問?點這裡 這是個什麼問題呢?dp,貪心,資料結構,圖論,數論還是計算幾何?管他呢,反正胖巨巨都會,雖然胖巨巨走得早。現在有n個數xi,現在你要把這些數分成兩組a,b,使得abs sum a sum b 盡可能的小,並且...

簡單01揹包 完全揹包

01揹包問題 有n個重量和價值分別為wi,vi的物品。從這些物品中挑選出總重量不超過w的物品,求所有挑選方案中價值總和的最大值。1 n 100 1 wi,vi 100 1 w 10000 第一行輸入n的值 接下來n行輸入wi,vi 最後一行輸入w for example input 2 31 2 3...