HDU 2955 Robberies (想法题&0-1背包)

HDU2955Robberies (0-1背包问题) 题目大意:        一个人要抢劫银行,在保证被抓概率小于某个预设的概率值时,尽可能抢到更多的钱。 输入:第一行是一个整数t,代表测试用例的个数            接下来第一行是一个小数P和一个整数N,N代表银行的个数,P代表概率的上限。            接下来N行,每行两个数,第一个整数代表该银行的钱数,第二个小数代表被抓的概率。 输出:输出每种情况能得到的最大的钱数。 阅读详情

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


如何变形呢??

int _01pack(int n, int maxw)
{
	memset(dp, 0, sizeof(dp));
	dp[0] = 1.0;///初始化这个
	int i, j;
	for (i = 0; i < n; ++i)
		for (j = maxw; j >= w[i]; --j)///maxw为所有银行的钱的总和
			dp[j] = max(dp[j], dp[j - w[i]] * v[i]);
	for (i = maxw;; --i) if (dp[i] >= p) return i;///最后遍历下
}

完整代码:
/*109ms,312KB*/

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int mx = 105;

int w[mx];
double v[mx], dp[10005], p;

int _01pack(int n, int maxw)
{
	memset(dp, 0, sizeof(dp));
	dp[0] = 1.0;
	int i, j;
	for (i = 0; i < n; ++i)
		for (j = maxw; j >= w[i]; --j)
			dp[j] = max(dp[j], dp[j - w[i]] * v[i]);
	for (i = maxw;; --i) if (dp[i] >= p) return i;
}

int main()
{
	int t, n, maxw, i;
	scanf("%d", &t);
	while (t--)
	{
		scanf("%lf%d", &p, &n);
		p = 1.0 - p;
		maxw = 0;
		for (i = 0; i < n; ++i)
		{
			scanf("%d%lf", &w[i], &v[i]);
			maxw += w[i];
			v[i] = 1.0 - v[i];
		}
		printf("%d\n", _01pack(n, maxw));
	}
	return 0;
}

基于STM32的可穿戴式多生理参数实时监测与预警系统 针对传统可穿戴健康设备存在的生理参数监测种类单一、数据处理依赖云端导致响应滞后、续航能力弱等问题,设计一种基于STM32的可穿戴式多生理参数实时监测与预警系统。系统以STM32L476RG低功耗微控制器为核心,集成心率血氧传感器、体温传感器、血压传感器,实现人体心率、血氧饱和度、体温、收缩压/舒张压的同步采集;通过边缘端轻量化数据处理算法完成参数异常判定,结合低功耗硬件设计与软件休眠策略,在保证监测精度的同时延长续航。测试结果表明,系统心率监测误差≤2次/分钟,血氧饱和度误差≤2%,体温误差≤±0.2℃,血 阅读详情

相关推荐

Sigmastar平台WDR调试实战:从参数解析到鬼影消除的完整指南

本文提供了Sigmastar平台宽动态(WDR)技术的实战调试指南。针对逆光、运动场景下的核心痛点,系统性地解析了从多曝光采集、HDR融合到色调映射的完整管线,并重点阐述了如何通过调整曝光比、运动阈值与调整曲线等关键参数,有效消除运动鬼影、平衡暗部噪声与细节,最终实现清晰稳定的图像效果。

Jerry的专栏 926

HDU 2955 Robberies

题意大概是一个小哥要去抢银行,他列出了几个银行的价值和被抓概率,然后定了一个最高被抓概率,求最多可以抢多少价值的东西。 一开始想成是被抓概率简单叠加了,写了个简单的背包就直接提交,WA..o(╯□╰)o 不过确实是背包问题,不过求的值是逃跑概率,然后只要在能逃跑的范围内找最大价值就好了。 #include &lt;cstdio&gt; #include &lt;cstring&gt;...

weixin_30680385的博客 109

STM32CUBEIDE调试中HardFault_Handler崩溃的故障分析器实战解析

本文详细解析STM32CUBEIDE调试中HardFault_Handler崩溃问题的实战处理方法。通过内置故障分析器自动诊断硬件异常原因,如内存越界、堆栈溢出等,提供图形化界面简化调试流程,并分享配置步骤、典型案例及高级调试技巧,帮助开发者快速定位和解决嵌入式系统崩溃问题。

night的博客 643

HDU 2955 Robberies【01背包】

题意:说强盗要去几个银行偷盗,已知各个银行的钱数和被抓的概率,以及强盗能容忍的最大的被抓概率。求他在被抓概率小于容忍值的情况下最多能偷到多少钱? 思路:第一反应:01背包,将每个银行当物品,钱数作为价值,被抓概率做容量。但这有问题,被概率不能当做容量,因为被抓概率并非简单的相加,而是要转化为不被抓概率相乘再用1减,于是这就不好写出递推关系了!于是换种思路,这种问题还是得01背包,只是将价值和容量换一换,将抢到的总钱数作为容量,不被抓的概率作为价值,这样就有:dp[i][j]=前i个银行中,抢到的总价值不大

MartaYang的博客 394

基于深度学习卷积神经网络的医学图像乳腺癌分类

一、项目背景与意义乳腺癌是女性最常见的恶性肿瘤之一,其早期发现和治疗对于提高患者的生存率和生活质量至关重要。然而,乳腺癌的诊断通常依赖于医生的经验和主观判断,这不仅耗时而且可能存在误差。近年来,深度学习技术特别是卷积神经网络(CNN)在图像处理领域取得了显著进展,为乳腺癌的自动分类提供了新的解决方案。本项目旨在利用深度学习卷积神经网络构建一套高效、准确的医学图像乳腺癌分类系统,辅助医生进行乳腺癌的早期诊断和治疗。二、技术实现。

2301_79810943的博客 976

Delta并联机构运动学正逆解:从理论建模到Matlab实战

本文深入解析了Delta并联机构运动学正逆解的核心原理与实战方法。通过几何建模,清晰阐述了其“逆解简单、正解复杂”的特性,并详细推导了基于一元二次方程的逆解解析算法与采用牛顿-拉弗森迭代法的正解数值算法。文章结合完整的Matlab代码实例,从符号推导到数值求解,提供了从理论到实践的完整实现路径,助力机器人开发者掌握Delta并联机构的运动学分析。

weixin_29096377的博客 433

HDOJ.2955 Robberies (01背包+概率问题)

Robberies题意分析有一个小偷去抢劫银行,给出来银行的个数n,和一个概率p为能够逃跑的临界概率,接下来有n行分别是这个银行所有拥有的钱数mi和抢劫后被抓的概率pi,求在不被抓的情况下,小偷能抢到的最多的钱是多少。 显然这是一道概率问题,计算小偷不能逃的概率是不好算的,不如计算他成功的概率。若把题目中每个数据变成能够逃跑的概率,那就是1-pi。 我们先举个简单的例子. 不妨假设有3个银行:

Pengwill's Blog 1295

在MacBook M1/M2上,手把手教你打包包含嵌入模型的RagFlow Docker镜像(避坑指南)

本文详细指导如何在MacBook M1/M2上构建ARM64架构的RagFlow Docker镜像,涵盖环境准备、依赖处理、镜像构建及性能优化全流程。特别针对Apple Silicon芯片的兼容性问题提供解决方案,帮助开发者高效完成本地开发环境搭建。

weixin_26908317的博客 242

HDUOJ 2955 Robberies

HDUOJ 2955 Robberies 题目链接 Problem Description The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually gets caught in the end, often because they become too greedy. He has decided to work in the lucrative business

旺崽的博客 2582

RK3588开发笔记-MIPI-CSI接口视频解码芯片XS9922B调试

Rockchip RK3588 是一款高性能的处理器,支持多种摄像头接口,包括 MIPI(Mobile Industry Processor Interface)接口。MIPI是一种用于移动设备和嵌入式系统中的摄像头、显示器和其他传感器设备的串行接口标准。MIPI是MIPI联盟发起的为移动应用处理器制定的开放标准。CSI-2(Camera Serial Interface 2)是MIPI 联盟定义的另一种高速接口,主要用于摄像模组和处理器之间的连接。

flypig has a dream! 6863

OAuth2.0集成SpringSecurity加JWT实现单点登录

单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统。也就是说只要登录一次单体系统就可以

Nicky's blog 9038

HDU 2955 Robberies (转化概率-01背包)

【题目链接】:click here~~ 代码: /* * Problem: HDU No.2955 * Running time: 46MS * Complier: G++ * Author: ACM_herongwei * Create Time: 15:01 2015/9/9 星期三 * zeroonebags * 用成功逃走的概率当做价值!银行的总钱数当做背包容量!单个银行的钱数体积,然

herongwei 的 BLOG 1502

手把手教你学Simulink——基于Simulink的CLLC谐振变换器双向对称控制

本文介绍了一种基于Simulink的CLLC谐振变换器双向对称控制方法。针对CLLC拓扑的多阶谐振特性,采用固定频率、50%占空比、仅调节相位差的对称控制策略,实现了宽电压范围调节和全负载ZVS软开关。详细阐述了Simulink建模步骤,包括功率级搭建、相位差生成逻辑和双向切换实现,并通过仿真验证了稳态性能和双向无缝切换能力。该方法解决了传统PFM控制的不足,具有控制简单、效率高、易于工程实现的优势,适用于车载充电和储能系统等双向功率应用场景。

MHD0815的博客 302

hdu2955 Robberies (01背包)

01-背包问题

1644

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

HDU2955 Robberies 一道01背包问题

HDU 2955 这一题,很有趣味。 首先,如果是按照照常的思路,在内层for循环,没办法遍历背包容量(概率),概率是double/float型的数据。 所以,将价值看成背包容量,在寻找可行的最大的价值时,将价值从大到小遍历,出现满足的概率条件时,便可以结束,此时的背包容量(价值),就是最终结果。 另外,注意,这么多银行中只要有一个银行抓住了他,就没有逃脱成功。 //HDU 2955...

117瓶果粒橙 283

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

hdu 2955 Robberies 01背包 Java

hdu 2955 Robberies 这道题自己写得挺久,最坑的一点是自己一开始是用 StreamTokenizer 类读取的,但是一直错,后来用 Scanner 类读取就 accept 了,搞不懂。 解这道题有以下关键点: 第一:一开始想的是用概率来作为背包容量,但是概率是浮点数,所以只能用钱来作为背包容量。 第二:题目中给出的都是被抓的概率,概率之间应该是相乘而不是相加,与一般的01背包不一样。 第三:dp[0] 注意初始化为 1, 什么都不偷逃跑的概率为 1。 import java.io.IOExc

weixin_46621409的博客 163

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Robberies HDU - 2955

The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually gets caught in the end, often because they become too greedy. He has decided to work in the lucrative...

Foolishman的博客 340

HDU - 2955 Robberies 【0-1背包】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955 Robberies Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32...

MengHao的博客 248

HDU 2955 Robberies【0/1背包变形】

题目链接 题目描述: Robber想要抢银行,每个银行的钱数为mj,抢这个银行被抓的概率为pj,在被抓概率小于 p 的情况下,求最大抢劫金额。 题解: 题目中给的是抢劫每个银行被抓的概率,设 p1,p2,...pnp_1, p_2, ...p_np1​,p2​,...pn​ ,由概率论知识我们可知¬p1∗¬p2∗...∗¬pn¬p_1*¬p_2*...*¬p_n¬p1​∗¬p2​∗...∗¬pn​ 为不被抓的概率,显然,如果概率不为小数,我们可以把 (1 - p) 作为容量进行 0/1 背包,但概率是小数

weixin_44258590的博客 190

hdu 2955:Robberies(概率dp,也可以叫01背包变形)

hdu 2955:Robberies(概率dp,也可以叫01背包变形) Problem Description The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually gets caught in the end, often because they ...

serendipity的博客 225

hdu 2955 Robberies (01背包)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955 思路:一开始看急了,以为概率是直接相加的,wa了无数发,这道题目给的是被抓的概率,我们应该先求出总的逃跑概率,1-逃跑概率就是最后被抓的概率,dp的话,以所有银行总金额为容量,以单个银行的金额为体积,以逃跑的概率为价值,跑01背包,最后找一下小于被抓概率的最大金额。 实现代码: #incl...

weixin_30252155的博客 109

hdu 2955 Robberies(01背包变形)

题目链接:hdu2955 思路:将各个银行的总资产当做背包的容量V,然后求最大的逃跑率 初始化:抢劫的金额为0时,一定是安全的,所以d[0]=1;其他金额初始为逃跑概率最小,全为0 #include #include #include using namespace std; double d[10005],v[105]; int c[105]; int main() { int

no pains,no gains 990

hdu2955 Robberies(01背包)

这题我是看题解做的。。。 刚开始一看浮点数遍历,乘100后再算果断WA(和我想的一样)。然后就不会了,看了才知道要转化背包,而且这个概率算的话是相乘,求的是最大逃跑概率,真是从头错到尾啊。。。还有Mi的范围是100题上说的啊,结果运行错误,果断改大就好= =。还是没完全理解01背包啊。。。 ps:最近应该是到了瓶颈期,看一道一道不会,做题速度大减不说,还浪费好多时间。听了12首

Iguodala的博客 5839

hdu2955 Robberies 浮点数背包变形

http://acm.hdu.edu.cn/showproblem.php?pid=2955 #include &amp;lt;bits/stdc++.h&amp;gt; using namespace std; const int maxn=10005; const int inf=0x3f3f3f3f; int n,sum; double P; double dp[maxn]; struct st{ i...

skykone1的博客 388

【DP|01背包】HDU-2955 Robberies

给出几家银行拥有的钱数、抢走该银行的所有钱被抓的概率和能够容忍的最大被抓概率,求在被抓概率在容忍线以下时能够抢劫的最大钱数。

JSure的代码库 1036

hdu 2955 Robberies 01背包

hdu 2955 Robberies 01背包

AAAry的博客 458
上一篇: HDU 2546 饭卡 (需要一些思考的0-1背包)
下一篇: POJ 2184 Cow Exhibition (想法题&双变量0-1背包)
synapse7
博客等级 码龄14年 432粉丝 701原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值