杭电2955题解(01背包)_01背包问题c语言代码,要求返回物品选择方案并以整数的二进制来表示-程序员宅基地

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955
题目大意:小偷去银行偷钱,每个银行给出能被偷的钱数和小偷在此银行会被抓的概率。
算出小偷不会被抓时能偷到的钱。给出小偷会被抓的概率R,在银行被抓的总概率不能超过此概率。
题解:以能偷到的钱为背包容量,以不会被抓的概率为物品价值,需要注意背包恰好装满,
而且概率是用乘法,给出的测试数据有点坑。标准01背包。输出物品价值超过不会被抓概率(1-R)时的背包容量.注意偷不到钱时被抓概率为0.


#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
double dp[10005];
int main(){
    
	int t;
	scanf("%d",&t);
	while(t--){
    
		for(int i=1;i<=10000;i++){
    
			dp[i]=0;
		}
		dp[0]=1;
		double p;
		int n,sum=0;
		scanf("%lf%d",&p,&n);
		p=1-p;
		int a[n];
		double b[n];
		for(int i=0;i<n;i++){
    
			scanf("%d%lf",&a[i],&b[i]);
			sum+=a[i];
			b[i]=1-b[i];
		}
		for(int i=0;i<n;i++){
    
			for(int j=sum;j>=a[i];j--){
    
				if(dp[j-a[i]]!=0)
				dp[j]=max(dp[j],dp[j-a[i]]*b[i]);
				else if(j==a[i])
				dp[j]=b[i];
			}
		}
		for(int i=sum;i>=0;i--){
    
			if(dp[i]>=p){
    
				printf("%d\n",i);
				break;
			}
				
				
		}
	}
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42774702/article/details/88613720

智能推荐

Sqlite3数据库导入操作_sqlite3 导入-程序员宅基地

文章浏览阅读3.9k次。准备需要先到官网下载sqlite3导入操作导入学生信息为例:新建文件(student.sql)文件内容//创建学生表create table student(StuNo TEXT,Name TEXT,Class TEXT);//如果需要多个表,可以继续写创建语句//定义字段分割符号,这里用逗号.separator ','//导入文件名称和..._sqlite3 导入

Gerrit简单介绍-程序员宅基地

文章浏览阅读991次。gerrit的简单介绍什么是Gerrit?  Gerrit 是一个基于 web 的代码评审工具, 它基于 git 版本控制系统。Gerrit 旨在提供一个轻量级框架, 用于在代码入库之前对每个提交进行审阅。‎Gerrit记录每一次提交的代码修改 , 但实际上并不成为项目的一部分, 直到它们被审阅和接受。它是标准开源过程的一个简单工具来支持提交补丁程序, 然后由项目成员在应用到代码库之前进行评审。‎Gerrit 首先是一个临时区域, 在提交的代码成为代码库的一部分之前, 可以对其修改进行检查。..._gerrit

华为大牛把Java程序员必学知识点整理出来了,真是太全面了_java必须掌握的知识点华为-程序员宅基地

文章浏览阅读587次。JVM无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎。不管是工作还是面试中,JVM都是必考题。如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在JVM上了)详细介绍了JVM有关于线程、内存模型、JVM运行时内存、垃圾回收与算法、Java中四种引用类型、GC 分代收集算法 VS 分区收集算法、GC 垃圾收集器、JAVA IO/NIO 、JVM 类加载机制的各大知识点。基本概念:JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾_java必须掌握的知识点华为

【调剂】天津师范大学计算机与信息工程学院2020年硕士研究生调剂-程序员宅基地

文章浏览阅读2.4k次。点击文末的阅读原文或者公众号界面左下角的调剂信息或者公众号回复“调剂”是计算机/软件等专业的所有调剂信息集合,会一直更新的。天津师范大学计算机与信息工程学院2020年硕士研究生复试、录取..._天津师大软件学院调剂

pymongo插入数据时更新和不更新的使用_pymongo update一个没有的值-程序员宅基地

文章浏览阅读5.9k次,点赞2次,收藏5次。(1)update的setOnInsert当该key不存在的时候执行插入操作,当存在的时候则不管,可以使用setOnInsertdb.test.update({'_id': 'id'}, {'$setOnInsert': {'a': 'a'}, true)当id存在的时候,忽略setOnInsert。(2)update的set当key不存在的时候执行插入操作,当存在的时候更新除..._pymongo update一个没有的值

zookeeper启动失败,zkServer.sh status 出错-程序员宅基地

文章浏览阅读1.7w次。运行zookeeperd后显示启动成功:JMX enabled by defaultUsing config: /data/programfiles/zookeeper-3.4.5/bin/../conf/zoo.cfgStarting zookeeper ... STARTED但用zkServer.sh status查看,反馈如下:JMX enable

随便推点

股票收益率正态分布性检验-程序员宅基地

文章浏览阅读1.2w次,点赞8次,收藏38次。##导入数据data2 = pd.read_csv ('data2.csv', encoding='gbk', index_col='Dates')data2.index=[dt.datetime.strptime(x,'%Y/%m/%d') for x in data2.index]##股票价格走势作图(data2/data2.iloc[0]*100).plot(figsize=(10..._收益率正态分布

android防拷贝防复制,局域网如何防止文件被复制拷贝-程序员宅基地

文章浏览阅读950次。操作也非常简单,点击顶部的“请选择要保护或取消保护的文件或文件夹”,然后选择要赋予的共享文件访问权限,只需要打勾就可以赋予用户访问共享文件的权限,不打勾则就不赋予,并在右侧选择访问共享文件的账号(意味着是针对此账号访问共享文件时的权限配置),然后点击右下角的“保护”即可。例如,通过Adobe Acrobat 7.0 PRO即可轻松完成word、excel等格式的文件转换成PDF文档。方法一、通过将...

设置Layui表格字段的字体颜色_layui table 字体颜色-程序员宅基地

文章浏览阅读2w次,点赞12次,收藏25次。设置Layui表格字段的字体颜色开发工具与关键技术:VS MVC作者:木林森撰写时间:2019年 7 月 26 日我们在使用layui表格对的时候,经常会有特殊字段需要显示出来,比如金额、状态……这时候我们就需要对layui表格进行设置了,代码如下:上面是对金额进行设置,效果如下:这个是最简单的设置,但是当我们遇到不同状态的时候,需要对不同的状态显示出不同的颜色,这里就需要准确到..._layui table 字体颜色

框架学习-Spring_框架化学习-程序员宅基地

文章浏览阅读202次。Spring简介分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(反转控制)和AOP(面向切面编程)为内核能整合开源世界众多第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架优势:方便解耦:通过IOC容器,将对象间的依赖关系交给Spring控制,避免编码的过度耦合AOP编程的支持声明式事务支持:声明式灵活管理事务,减少不必要的事务管理的代码编写方便测试方便集成优秀框架降低对Java EE API的使用难度源码是学习典范Spring基本_框架化学习

signature=a3b4a1e04a8b550d38f07eaccc572988,Read/write encrypted media and method of playing-程序员宅基地

文章浏览阅读94次。BACKGROUNDMany different methods of delivering playable media to users have been suggested. Perhaps the most ubiquitous among such methods, is the DVD, and its follow on generation “Blue Ray”. These d..._京神云b55038

error C2857: '#include' statement specified with the /Ycstdafx.h command-line option 解决方法_c语言错误2857-程序员宅基地

文章浏览阅读9.2k次,点赞2次,收藏3次。在VC6.0中,如果stdafx.cpp中不包含stdafx.h,而是包含其他的头文件,就会出现下面的错误提示error C2857: '#include' statement specified with the /Ycstdafx.h command-line option was not found in the source file解决这个问题,仅仅在C++选项中,Pre_c语言错误2857