hdu 2955 動態規劃 01揹包

2021-05-28 10:32:33 字數 668 閱讀 8818

題意:roy要偷銀行,每個銀行都有乙個被抓到的概率,roy的媽媽算出乙個不被抓到的概率上限,要求求出roy偷到最多的錢且不超過被抓到的概率上限。

正難則反, 狀態轉移方程則為  dp[ v ] = max( dp[ v - w[ i ] ] * p[ i ] , dp[ v ] ) , dp[ v ] 表示偷到  v  元逃脫的概率, w[ i ] 表示從第 i 個銀行能偷到的錢, p[ i ] 表示偷第 i 個銀行逃脫的概率。

#include using namespace std;

const int size = 105;

int w[size];

float dp[10005], p[size];

int main()

memset(dp, 0, sizeof(dp));

dp[0] = 1;

for(i = 1; i <= n; i++)

for(v = sum; v >= w[i]; v--)

if(dp[v-w[i]]*p[i] > dp[v])

dp[v] = dp[v-w[i]]*p[i];

for(v = sum; v >= 0; v--)

if(dp[v] > 1 - f_limit)

}return 0;

}

hdu 2955 Robberies 01揹包變形

include include include include double f 10001 double maxn double maxs double a,double b int main for i m i 0 i if f i maxn 1e 12 break printf d n i r...

動態規劃 01揹包

最優二叉查詢樹.cpp 定義控制台應用程式的入口點。01揹包問題。include stdafx.h include include define n 3 the number of real node define m 10 using namespace std int tmain int arg...

01揹包動態規劃

0 1揹包 問題描述 乙個旅行者有乙個最多能用 m公斤的揹包,現在有 n件物品,它們的重量 分別是w1,w2 wn,它們的價值分別為 c1,c2,cn.若每種物品只有一 件求旅行者能獲得最大總價值。輸入格式 w 第一行 兩個整數,m 揹包容量,m 200 和n 物品數量,n 30 w第2.n 1 行...