http://acm.hdu.edu.cn/showproblem.php?pid=2955
题目大意:有一个小偷要偷银行的钱,可是他偷没家银行总是有一定的概率被抓,现在给了你一个概率P,只要他被抓的概率乘积不大与P,他就是安全的。问你在他安全的情况下,他最多可以偷多少钱。
解题思路:容量为银行钱的总和,价值就是偷到的钱,花费就是被抓的概率。
dp[j] = Max(dp[j],dp[j-w[i]]*(1-p[i])) dp[j]表示偷到j钱时,他不被抓的概率是多少
这个题目变态开始我以为用概率做背包那知道是小数 后来用money做背包但是用二维数组怎么搞都出不来 看了大牛的代码后用一维一下子就出来了 算出不被抓的最大概率 然后money从后往前找出允许的不被抓的最小值概率 然后break 输出 小标(money)