hdoj2955
2015-07-30 13:07
344 查看
以价值总数为背包重量,以银行数量为物品数 ,成功概率为总价值构建背包
#include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> #include<map> #include<stack> #include<time.h> #include <memory.h> int mo[1100],sum; double p1[1100],can[10010]; int main() { int i,j,t,n,k; double p; scanf("%d",&t); for(i=0;i<t;i++) { sum=0; scanf("%lf %d",&p,&n); for(j=1;j<=n;j++) { scanf("%d %lf",&mo[j],&p1[j]); sum+=mo[j]; p1[j]=1-p1[j]; } memset(can,0,(sum+1)*4); can[0]=1; for(j=1;j<=n;j++) for(k=sum;k>=mo[j];k--) { can[k]=can[k]>can[k-mo[j]]*p1[j]?can[k]:can[k-mo[j]]*p1[j]; } for(j=sum;j>=0;j--) { if(1-can[j]<=p){printf("%d\n",j);break;} } } return 0; }
相关文章推荐
- Android内存管理之道
- Windows API函数 WaitForMultiObjects 的使用注意事项
- 读书笔记16:组合模式
- 读书笔记15:备忘录模式
- SpringMVC 流程(5)-- 视图解析器
- 读书笔记14:适配器模式
- 【转】 依赖注入框架Autofac的简单使用
- linux mint sublime3的c编译环境配置
- MySQL函数
- java 方法对 二、八、十、十六进制之间的转换
- 读书笔记13:状态模式
- Treap树(并查集 + 树堆)POJ —— 2985 The k-th Largest Group
- 如何成为一名黑客
- python main
- 1029. 旧键盘(20)
- 使用cmake配置qt项目时利用openmp
- 读书笔记12:观察者模式
- 高效Linux之autojump的安装、配置与使用
- 进程,创建,vfork
- Azure 执行模型