http://acm.hdu.edu.cn/showproblem.php?pid=2955

这道题求不被抓时的最大金钱。金额是整数,概率是小数。因为数组小标不能是小数,所以我们可以以钱作为weight,概率作为value

这说明解背包问题时cost和weight不是定死的,是可以相互转换的。

以银行的的总金额作为V,安全概率作为value,金额作为cost,安全概率=各家银行安全概率之积

#include <iostream>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <stack>
using namespace std; #define MEM(a,b) memset(a,b,sizeof(a))
#define pf printf
#define sf scanf
#define debug printf("!/m")
#define INF 8000
#define MAX(a,b) a>b?a:b
#define blank pf("\n")
#define LL long long
#define ep 1e-6 double dp[INF]; double ci[INF];//容量
int wi[INF];//价值
int n,V,i,j,v,t,sum;
double vi; void zeroOnePack(int cost,double weight)
{
for(v = sum;v>=cost;v--)
{
dp[v] =MAX(dp[v],dp[v-cost]*weight);
}
} void completePack(int cost,int weight)
{
for(v = cost;v<=V;v++)
{
dp[v] =MAX(dp[v],dp[v-cost]+weight);
pf("tt%d %d %d\n",i,v,dp[v]);
} } int main()
{ sf("%d",&t);
while(t--)
{
sf("%lf%d",&vi,&n); MEM(dp,);
dp[] = 1.0; MEM(ci,);
MEM(wi,); vi = -vi; sum = ; for(i = ;i<=n;i++)
{
sf("%d",&wi[i]);
sf("%lf",&ci[i]);
ci[i] = -ci[i];
sum+=wi[i];
} for(i = ;i<=n;i++)
{
zeroOnePack(wi[i],ci[i]);
} for(i = sum;i>=;i--)
{
if(dp[i]-vi>0.000000001)
{
pf("%d\n",i);
break;
}
}
}
return ;
}

78MS

最新文章

  1. 易货beta版本项目展示报告
  2. java中Class.getResource用法
  3. 参考SQLHelper编写的OracleHelper
  4. Linux内存管理 (17)KSM
  5. webpack 4.0配置2
  6. 第 16 章 C 预处理器和 C 库(直角坐标转换极坐标)
  7. jquery操作radio,checkbox
  8. jquery所有版本下载外链地址
  9. Java知多少(26)源文件的声明规则
  10. SQL Server 通过TSQL(存储过程)用MSXML去调用Webservice
  11. C# 程序设置开机启动(一)
  12. Java DecimalFormat的主要功能及使用方法
  13. JavaScript初级面试题
  14. C# 温故而知新:Stream篇(二)
  15. CentOS7安装步骤详解
  16. (剑指Offer)面试题42:翻转单词顺序
  17. GUI的广泛应用是当今计算机发展的重大成就之一
  18. Java-Runoob:Java 方法
  19. CAN2.0A帧格式 与 LIN帧格式 简单说明
  20. Nginx负载均衡案例

热门文章

  1. 两个for循环效率,哪个高
  2. Mysql Insert Or Update语法例子
  3. CentOS6.5下samba服务
  4. git命令合集及github的克隆推送
  5. 总结day26 ----验证客户端的合法性,已经操作系统,进程的简单初识别
  6. java_对象序列化
  7. vue+ivew-admin开发项目,内存占用过大解决办法
  8. C++ class和struct的区别
  9. Hexo博客系列(二)-在多台机器上利用Hexo发布博客
  10. prim /kruskal 最小生成树