HDU 3466 01揹包變形

2021-09-08 04:38:56 字數 511 閱讀 9641

給出物品數量n和總錢數m

對於n個物品。每乙個物品有其花費p[i], 特殊值q[i],價值v[i]

q[i] 表示當手中剩餘的錢數大於q[i]時,才幹夠買這個物品

首先對n個物品進行 q-p的排序,表示差額最小的為最優。優先考慮放入這個物品

然後01揹包計算

#include "stdio.h"

#include "string.h"

#include "algorithm"

using namespace std;

int inf=0x3f3f3f3f;

struct node

a[510];

int dp[5010];

int max(int a,int b)

ans=0;

for (i=0;i<=m;i++)

ans=max(ans,dp[i]);

printf("%d\n",ans);

}}

HDU2955 01 揹包變形

dp i j 表示從前 i 家銀行中搶劫某些家,得到 j 價值 而不被抓住的概率。dp j max dp j dp j val i 1 w i 將全部銀行的錢當做揹包的最大體積 那麼每家銀行的錢則當做物品的體積 那麼被抓的概率當做物品的價值 那麼便容易推出我們所需要的動態方程 dp i max dp...

hdu 2955 0 1揹包變形

題目大意 劫匪搶銀行,要求被抓概率小於p。共有n個銀行,第i個銀行錢數為m i 被抓概率為p i float型 求劫匪最多能搶多少錢 思路 由於代價 被抓概率 是浮點型且不能直接相加,所以不能以代價為揹包。這個題目可以以獲得的價值 即搶到的錢數 為揹包,求搶到一定錢時逃跑的概率 雖然搶到的錢數不是連...

飯卡 HDU 2546 01揹包變形

題意 對於飯卡裡的餘額,如果少於5元,那麼不能買任何東西,5元,可以買任意乙個東西,甚至讓飯卡的餘額變成負的。現在已知飯卡的餘額m,n種菜的 思路 最貴的那個肯定最後買,讓n 1個菜盡量接近5就可以。01揹包的變形,在n 1個物品中抽取任意個,使得所花的錢盡可能接近m 5。讓價值和體積相等。求出體積...