HDU 2955 Robberies

OpenClaw智能体应用第一集--飞书多智能体配置 本文介绍了智能体(Agent)的核心概念与配置实践。Agent作为独立作用域的"大脑",包含模型(认知引擎)、记忆系统(短期/长期记忆)、人设(角色定义)、工具(外部能力调用)、规划执行(任务拆解)、运行环境等核心要素。每个Agent拥有唯一agentId标识,通过accountId区分渠道账号,Binding机制实现消息路由。实践部分展示了通过命令行配置多个智能体(如writer)的过程,包括插件注册和工具加载。系统支持多Agent架构,可根据不同场景需求灵活配置专属智能体。 阅读详情

传送门

01背包,,,非常灵活的变形。
给你很多个银行(物品),每个银行的钱数(重量)和被抓概率(价值),一个人去抢劫这些银行,但是总体被抓概率要小于一个固定值P,在这基础上最多能抢多少钱。(一个银行要么不被抢,要么全被抢)

乍一看肯定是钱数当成价值啊,因为正好要求最大化钱数,所以被抓概率就是重量了?。。不行的。概率值是个小数,而dp[]的下标就是当前背包容量,这概率连乘起来位数多了去了,数组下标没法搞。

所以只能概率当成价值,钱数当成重量(N*Mj<=10000)。然后再看这题,它给的是被抓概率,然而总体被抓概率不是被抓概率的连乘,所以我们翻一下,把每个银行的不被抓概率当成价值。
这就变成了:(在可供抢劫范围为前i个银行的情况下,)抢劫不超过当前钱数下,最大的不被抓概率是多少。

但是,细心的话你会发现一个问题。 不抢一家银行的不被抓概率最大,那么所有钱数下的最大不被抓概率都是1。怎么办?其实考虑dp的初始值也能发现,按理说,本来dp的初值应该都是1.0,但那样的话就永远不会再被更新了。

所以要加个限制,必须恰好装满。 所以只有dp[0]的初值是1.0,其他都是不合法的值(因为是乘积传递,用0.0就可以了)。
现在问题变成了:(在可供抢劫范围为前i个银行的情况下,)恰好抢劫当前钱数下,最大的不被抓概率是多少。

接下来运行dp,最后,我们从大到小枚举钱数,当概率第一次大于P时,此时的钱数就是答案了。为什么能这么求?因为我们算的都是最大不被抓概率,如果最大概率都无法大于一个下限,那么意味着这个钱数下肯定无解;如果之后钱数下的概率比答案更大,那么也没有用,因为只要概率大于下限了,我们并不关心哪个更大,我们只关注哪个抢的钱多。


#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstring>
#include <string>
#include <queue>
using namespace std;

int N, T;
double P;
double dp[10001];            // 恰好!!抢劫这些钱的最大逃脱概率,背包容量是当前抢劫钱数
double p[101];
int w[101];
int sum;                     // 背包容量

void init()
{
	fill(dp + 1, dp + 10001, 0.0);        // 恰好装满系列。价值是乘积,需要额外注意初始化!
	dp[0] = 1.0;
	sum = 0;
}

int main()
{
	
	scanf("%d", &T);
	for (; T--;)
	{
		scanf("%lf%d", &P, &N);
		P = 1.0 - P;
		init();
		for (int i = 1; i <= N; i++)
		{
			scanf("%d%lf", &w[i], &p[i]);
			p[i] = 1.0 - p[i];                // 所谓逃脱概率 = (1-p[1])*(1-p[2])*(1-p[3])...   p[i]表示该次被抓概率
			sum += w[i];
		}

		for (int i = 1; i <= N; i++)
		{
			for (int j = sum; j >= w[i]; j--)
			{
				dp[j] = max(dp[j], dp[j - w[i]] * p[i]);
				//cout << "   i= " << i << " j= " << j << "   " << dp[j] << endl;   弄不清的时候,不妨看看运行过程
			}
		}
		for (int i = sum; i >= 0; i--)
		{
			if (dp[i] > P)
			{
				printf("%d\n", i);
				break;
			}
		}
	}

	return 0;
}
【算能】TPU(张量处理单元)的深度解析 算能(SOPHGO)作为国产AI芯片领域的核心企业,其TPU(张量处理单元)以高能效比与全场景覆盖能力为核心竞争力,专注于边缘计算与行业垂直领域的AI推理加速。 阅读详情

相关推荐

Unity 数字孪生实战:PiXYZ Plugin工业模型高效处理指南

本文是Unity数字孪生实战指南,重点介绍了如何使用PiXYZ Plugin高效处理工业CAD模型。针对工业模型导入Unity时面临的格式壁垒、数据爆炸和资产混乱等核心痛点,文章提供了从环境安装、基础导入到智能减面、资产清理的完整解决方案,并分享了预设自动化、运行时导入等高级技巧与性能优化策略,帮助开发者快速打通工业设计与实时交互流程。

weixin_29009501的博客 255

【hdu2955】 Robberies 01背包

标签:01背包 hdu2955http://acm.hdu.edu.cn/showproblem.php?pid=2955 题意:盗贼抢银行,给出n个银行,每个银行有一定的资金和抢劫后被抓的概率,在给定一个概率P,表示盗贼愿意冒险抢劫所能承受的最大被抓概率。 思路:首先用1减去被抓概率,得到安全概率。那抢劫了多家银行后的安全概率就是这些银行各自的安全概率连乘起来。其实是01背包的变种...

weixin_30364325的博客 106

Qt图表库三选一:Qwt、QChart、QCustomPlot实战性能对比与避坑指南

本文深入对比了Qt开发中三大主流图表库Qwt、QChart和QCustomPlot的性能与适用场景。通过实测数据展示各库在渲染效率、内存占用和功能特性上的差异,并提供针对不同项目需求的选型建议和集成避坑指南,帮助开发者高效选择最适合的Qt图表解决方案。

weixin_33691700的博客 449

HDU2955 Robberies 一道01背包问题

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

117瓶果粒橙 283

别再魔改LWIP了!用STM32CubeMX配置F407的TCP保活(KeepAlive)与自动重连

本文详细介绍了如何通过STM32CubeMX配置STM32F407的LWIP协议栈,实现TCP保活(KeepAlive)与自动重连功能,解决网络异常断开问题。文章提供了从基础环境配置到自动重连架构设计的完整指南,帮助开发者构建高可靠的网络连接机制,适用于工业物联网和嵌入式设备开发。

weixin_27038245的博客 234

SAP 超详细解析信用控制

当然,集团内中国区、日本或欧洲区的公司使用了不同本位货币会计核算虽然分开,但对于客户的信用也可以统一管 理的,只要将这些不同本位币的公司代码纳入同一信用控制范围,信用控制范围货币可以考虑使用总部集团的货币,各公司代码的信用发生额自动根据系统设定汇率 转换为统一的信用控制范围货币。此步有一个“覆盖CC范 围”的选项,表示在过账时此步缺省的分配给公司代码的信用控制范围可以在其它信用控制范围使用,有时当一个公司代码的客户需要将信用数据过账到其它信用控 制区域,这个选择就非常有必要。

matinal 當冬夜漸暖 。公众号:matinal 1万+

hdu2955 解决问题的思路不错 逆向求解

//题意:Roy想偷银行里的钱,但是在偷每个银行里的钱时,都冒着一定被抓的风险,为了能让被抓的风险降低为(小于等于p) //求所偷的最大的值。 //思路:刚开始以为将被抓的概率X100000,然后把p当做背包的容量,利用01背包求解,但是最后还是错了,因此小数点后面的位数太多了。 //看了下别人的思路,感觉挺好。转化为最大的存活概率。 //即:将银行所有的资产转化为背包的容量,求存活率最高,注意当

wahaha1_的专栏 725

搭建微信机器人的方案都在这了!

功能超级强大,虽不支持二次开发,但已有的功能足够个人使用,可惜官方作品已被腾讯告死,好在市面上还流落着不少破解版,有需要的自行搜索。可惜的是,微信官方已不准许新的微信号再使用 web 登录,这就直接从源头扼杀了 web 协议的微信机器人,虽说老的微信号还是能凑合着用,不过部分功能也受限。所以,这些都属于 PC 端的微信机器人。无论是 PC 端还是手机端,用 hook 方式实现的最大缺点就是要和某一个版本的微信客户端进行绑定,如果框架本身不对最新版本的微信适配,那使用的时候就无法升级到最新版本的微信。

weixin_47246330的博客 1万+

HDU - 2955 - Robberies

背包动态规划

~ 229

YOLOv13改进策略【Neck】| CVPR2024 LGAG:大核分组注意力门模块,3×3分组卷积与注意力协同的特征精准融合

本文记录的是利用LGAG 模块改进 YOLOv13 的颈部融合部分。(Large-kernel Grouped Attention Gate)通过3×3分组卷积与注意力机制结合,引导解码器处理特征与跳接特征的精准融合。本文利用模块,通过3×3分组卷积扩大感受野以捕捉更广泛局部空间上下文,同时结合注意力机制生成自适应注意力系数,对YOLOv13中关键目标特征赋予高激活值、抑制冗余背景特征,在特征融合阶段实现全局语义与局部细节的高效结合,减少计算成本的同时提升特征表达能力,增强模型对复杂场景下目标的检测精度与效

Limiiiing的博客 103

2026 年 AI 大模型资讯深度研究报告 / 2026 年 3 月 11 日

2026 年已成为 AI 大模型发展的关键拐点年。从 2023 年 ChatGPT 开启的技术奇点,历经多模态突破、推理能力崛起,至 2025 年形成产业爆发态势,AI 大模型正从"技术验证期"迈向"产业落地期"。核心发现技术突破: OpenAI 于 2026 年 3 月 6 日发布 GPT-5.4,首次实现原生计算机操控能力,在 OSWorld 桌面操控测试中以 75% 成功率超越人类 (72.4%),标志着 AI 从"对话工具"向"自主数字员工"的时代跃迁市场格局。

AI天才研究院 785

HDU2955(Robberies)

题目传送门 题意 大概意思就是有一个人要去抢银行,然后算好了每个银行有多少钱,抢这个银行的风险是多少。给定银行数目和风险数,问不超过这个风险数下能抢到的最大金额。看起来好像挺简单的不就是01背包嘛,其实也道题也不简单,坑也不少。 思路 错误的思路:最开始我做这道题强行把风险数转为整数当做背包容量,然后再去做01背包,几发WA之后我不得不怀疑自己的思路的正确性。然后我开始怀疑这个浮点数是不是给的位...

weixin_43808717的博客 723

全面解析量化价值投资多因子模型的原理

明明知道“买便宜的好公司”是价值投资的核心,但面对3000+只A股,如何快速筛选出“便宜又好”的标的?主观判断总被情绪干扰——明明PE很低的股票,买了却不涨;或者因为“感觉”错过牛股?想规模化投资,但手动分析100只股票就要花一周,根本无法覆盖全市场?量化价值投资的多因子模型,正是解决这些问题的钥匙。它将价值投资的核心逻辑(“便宜”“好公司”)转化为可量化的因子,用数学模型替代主观判断,实现系统化筛选、可回测验证、规模化复制的投资决策。为什么多因子模型能有效预测股票收益?

AI天才研究院 1058

hdu 2955 Robberies(01背包)

hdu 2955 Robberies (01背包)

程序员的冷浪漫 765

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

hdu 2955 Robberies

hdu  2955  Robberies                 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955 题目大意:劫匪Roy the Robber打算大干一票然后安度晚年,估计了n个银行的储备金总数,及其被抓概率(抢一次必然就全抢走,然后就要承担在这个银行被抓的危险了)。其母有些担心,给规定了个最大被抓概率忍受上限,我们要

slicer的技术交流栈 761

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HDU 2955 Robberies(01背包)

题目链接:HDU 2955 Robberies 01背包。 题目中给的概率精度是两位的,但是不一定都是两位的,所以没法同乘一个常数使概率变成整数,然后以把概率当成背包。这道题应该把银行总钱量当成背包。 状态转移方程:f[j]=max(f[j],f[j-q[i].money]*q[i].v),f[j]表示抢j块大洋的最大的逃脱概率。 dp[0]赋值为1(没有抢银行肯定能跑),其余dp值赋为0

fobdddf的专栏 573

HDU——2955Robberies

Robberies Time Limit: 1000msMemory Limit: 32768KB This problem will be judged on HDU. Original ID: 2955 64-bit integer IO format: %I64d Java class name: Main Prev Submit Status Statist...

aiguo4793的博客 213

HDU2955 Robberies

RobberiesTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 29525    Accepted Submission(s): 10799Problem Description The aspiring Roy the Robber h...

zhlbjtu2016的博客 229

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的博客 224

hdu2955 Robberies

hdu2955 Robberies

李典金 338

hdu 2955 Robberies 01背包 Java

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

weixin_46621409的博客 163

物联网平台开发实战:从技术选型到架构演进

物联网作为连接物理世界与数字世界的核心技术,其架构通常分为感知层、网络层与平台层。平台层作为物联网的“大脑”,承担着设备接入、数据处理与业务逻辑实现的核心功能,其技术栈与后端开发高度重叠,但需特别关注物联网协议与海量设备接入场景。在工程实践中,消息队列(如Kafka)用于应对数据洪峰,时序数据库(如InfluxDB)则针对时间序列数据存储优化,而微服务架构与全链路监控是保障系统稳定性的关键。本文以物联网平台后端开发为例,通过一个完整的智能监控Demo项目,串联起从设备数据采集、MQTT传输、Spring B

weixin_34122810的博客 361

hdu 2955 Robberies 背包

题意:求在给定的被捉概率范围内列出每个银行的钱和被捉概率 求出最大抢到的钱数.超出给定的被捉率她妈妈就不会给他去冒险! Description The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually gets caught i

u013087645的专栏 627

HDU2955-Robberies

http://acm.hdu.edu.cn/showproblem.php?pid=2955 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; double q[105],dp[10005]; int m[105]; int main(void...

weixin_30794491的博客 106

hdu2955Robberies

正文 首先题意是,告诉你一个劫匪,他要去抢劫银行,告诉你他能忍受的被抓的最大几率,并告诉你每个银行所拥有的钱数,以及他会被抓的概率,问,在不超过最大限度的情况下,能获得的最大收益。 解析: 看到这道题,首先反应,这道题是一个01背包的题目,但是,这道题他的RMB显然是他的价值,而被抓的概率显然是容积,但是,容积是一个小数该怎么办呢?要不然这就是一个NP完全问题了 但是,每一个银行的钱数是一个整数啊...

mzj_best的博客 300
上一篇: HDU 3832 Earth Hour
下一篇: HDU 1864 最大报销额
Crossing over
博客等级 码龄10年 6粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值