当前位置: 首页 > news >正文

CF1866M Mighty Rock Tower

CF题面 luogu题面

期望题。

题目大意:一个人在搭积木,每次堆叠可能成功或失败,失败可能导致其下面连续的若干块掉落。给定搭每一块时失败的概率,求堆叠完成的期望次数。
具体的,假设当前正在堆叠第 i 块,设掉落概率为 p,则有 p 概率第 i 块失败,有 p 2 p^2 p2 概率第 i 块和第 i-1 块均掉落,有 p 3 p^3 p3 概率第 i, i-1, i-2 块均掉落,以此类推。

f i f_i fi 表示堆叠 i i i 块的期望次数不好转移,注意到堆叠连续性,考虑设 f i f_i fi 表示由第 i − 1 i-1 i1 块到堆好第 i i i 块的期望次数。

列出状态转移方程:
f i = ( 1 − p i ) × 1 + p i ( ( 1 − p i ) ( f i + 1 ) + p i ( ( 1 − p i ) ( f i + f i − 1 + 1 ) + ⋯ + p i ( f i + f i − 1 + ⋯ + f 1 + 1 ) … ) ) f_i=(1-p_i)\times 1+p_i((1-p_i)(f_i+1)+p_i((1-p_i)(f_i+f_{i-1}+1)+\dots+p_i(f_i+f_{i-1}+\dots+f_1+1)\dots)) fi=(1pi)×1+pi((1pi)(fi+1)+pi((1pi)(fi+fi1+1)++pi(fi+fi1++f1+1)))

变形得 f i ( 1 − p i ) = 1 + p i 2 × f i − 1 − p i 3 × f i − 1 + p i 3 × ( f i − 1 + f i − 2 ) + ⋯ + p i i − 1 ( f i − 1 + f i − 2 + ⋯ + f 2 ) + p i i ( f i − 1 + f i − 2 + ⋯ + f 2 + f 1 ) f_i(1-p_i)=1+p_i^2\times f_{i-1}-p_i^3\times f_{i-1}+p_i^3\times (f_{i-1}+f_{i-2})+\dots+p_i^{i-1}(f_{i-1}+f_{i-2}+\dots+f_2)+p_i^i(f_{i-1}+f_{i-2}+\dots+f_2+f_1) fi(1pi)=1+pi2×fi1pi3×fi1+pi3×(fi1+fi2)++pii1(fi1+fi2++f2)+pii(fi1+fi2++f2+f1)

化简 得 f i = 1 + ∑ j = 2 i p i j × f i − j + 1 1 − p i f_i=\large\frac{1+\sum^{i}_{j=2}p_i^j\times f_{i-j+1}}{1-p_i} fi=1pi1+j=2ipij×fij+1

这时复杂度是 O ( N 2 ) O(N^2) O(N2),考虑如何优化。
我们当然想将 f i − j + 1 f_{i-j+1} fij+1 转成前缀和,麻烦在于 p i j p_i^j pij,这时我的思路卡死。
考虑如何处理 p p p,发现 p ∈ [ 0 , 100 ) p\in[0,100) p[0,100),于是可以考虑对于所有 p p p 都做前缀和维护。

这里再细讲下如何前缀和维护。对于 ∑ j = 2 i P j × f i − j + 1 \sum^{i}_{j=2}P^j\times f_{i-j+1} j=2iPj×fij+1,观察 i + 1 i+1 i+1 的和,即 ∑ j = 2 i + 1 P j × f i − j + 2 \sum^{i+1}_{j=2}P^j\times f_{i-j+2} j=2i+1Pj×fij+2,发现就是 前者 × P + P 2 × f i \times P+P^2\times f_i ×P+P2×fi。如果把求和的式子改写成 ∑ j = 1 i − 1 P i i − j + 1 × f j \sum^{i-1}_{j=1}P_i^{i-j+1}\times f_j j=1i1Piij+1×fj 会好看些,这里不写了。当然,学会观察式子并将之改得更加容易理解也是一种技能。

然后这题就做完了,时间复杂度 O ( 100 N log ⁡ M ) O(100N\log M) O(100NlogM)
这题时限 2s,注意优化常数。
优化后的复杂度是 O ( 100 N ) O(100N) O(100N),可以通过此题。


这题的关键点在于发现 p ∈ [ 0 , 100 ) p\in[0,100) p[0,100) ,可以将前缀和关于 p p p 全部维护出来。

C o d e Code Code

相关文章:

CF1866M Mighty Rock Tower

CF题面 luogu题面 期望题。 题目大意:一个人在搭积木,每次堆叠可能成功或失败,失败可能导致其下面连续的若干块掉落。给定搭每一块时失败的概率,求堆叠完成的期望次数。 具体的,假设当前正在堆叠第 i 块,…...

【漏洞复现】Apache_Tomcat7+ 弱口令 后台getshell漏洞

感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描3、漏洞验证 说明内容漏洞编号漏洞名称Tomcat7 弱口令 && 后台getshell漏洞漏洞评级高…...

2023-11-7 OpenAI 45 分钟发布会:演示关于 GPT Store 构建 GPT、零代码创建 AI Agent

本心、输入输出、结果 文章目录 2023-11-7 OpenAI 45 分钟发布会:演示关于 GPT Store 构建 GPT、零代码创建 AI Agent前言Sam Altman 正在创建一个「创业导师 GPT」零代码创建 AI AgentAssistants API 封装的能力包括 Sam Altman 对发布会总结相关链接弘扬爱国精神 …...

嵌入式系统中的FPGA

举个栗子 假设你有一台智能家居系统,其中的FPGA可以被类比为智能家居中的中央控制器。 智能家居系统: 定制家居逻辑: 你希望智能家居系统能够根据你的生活习惯、时间表和喜好自动控制灯光、温度、窗帘等设备。就像FPGA中可以根据需求重新配置…...

String,StringBulider,StringBuffer的简单说明

目录 1.String 2.StringBuffer 3.StringBuilder 4.线程安全的验证 1.String String是声明在java.lang下的一个类。 String被定义为final,表示不能被继承。内部定义了final char value[]用于存储字符串数据,所以String对象的值是不可改变的。每次对S…...

Python编程题集(第一部分基本语法基础)

Demo01 摄氏温度转化为华氏温度 题目描述: 输入一个摄氏温度的值,将它转变为华氏温度,并将结果输出 转换的公式为如下:fahrenheit (9 / 5 ) * celsius 32 输入输出描述 输入一个值表示摄氏温度celsius 输出华氏温度fahren…...

手动关闭PS中的TopazStudio2的登录窗口

2021 adobe photoshop Topaz Studio 2 不是使用防火墙出站规则,是手动关闭的解决方案 点击社区-切换用户,登录窗口会出现X,可以手动关闭...

[elastic 8.x]java客户端连接elasticsearch与操作索引与文档

初始化客户端 引入相关依赖 <dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.10.2</version> </dependency>初始化客户端 为了方便演示&#xff0c;我关闭了ela…...

接口测试总结

本文主要分为两个部分&#xff1a; 第一部分&#xff1a;主要从问题出发&#xff0c;引入接口测试的相关内容并与前端测试进行简单对比&#xff0c;总结两者之前的区别与联系。但该部分只交代了怎么做和如何做&#xff1f;并没有解释为什么要做&#xff1f; 第二部分&#xff1…...

计算机基础知识44

overflow溢出属性 visible&#xff1a;默认值&#xff0c;内容不会被修剪&#xff0c;会呈现在元素框之外。hidden&#xff1a;内容会被修剪&#xff0c;并且其余内容是不可见的。scroll&#xff1a;内容会被修剪&#xff0c;但是浏览器会显示滚动条以便查看其余的内容。auto: …...

【StringBuilder和StringBuffer】

文章目录 StringBuilder和StringBufferString类、StringBuilder和StringBuffer的区别 StringBuilder和StringBuffer的区别StringBuilder 字符串逆置 StringBuilder和StringBuffer String类、StringBuilder和StringBuffer的区别 String类的特点是不可变性&#xff0c;所以Stri…...

用java代码实现security

Java中security的实现主要涉及到以下几个方面&#xff1a; 认证(Authentication) 认证是确认用户身份的过程&#xff0c;Java中提供了不同的认证机制来保护应用程序不被未授权的用户访问。常用的认证机制有以下几种&#xff1a; 基于口令的认证&#xff1a;要求用户输入用户名…...

【Java 进阶篇】Java Session 原理及快速入门

大家好&#xff0c;欢迎来到本篇博客。今天&#xff0c;我们将探讨Java Web开发中一个重要而令人兴奋的概念&#xff0c;即Session&#xff08;会话&#xff09;。Session是一种在Web应用程序中跟踪用户状态和数据的机制。我们将深入了解Session的原理&#xff0c;并通过示例来…...

MoveFunsDAO 星航计划|从Move入门Web3与深入实践「公益课堂」

Move 语言作为最安全的编程语言之一&#xff0c;在资产的安全性和保护方面有着显著优势&#xff0c;被寄予引领 Web3 世界的全新叙事的厚望。 随着 Sui 在今年五月主网上线&#xff0c;它为 Move 生态带来一股新的浪潮。上线以来&#xff0c;Sui 公链的开发活跃度持续数月位居…...

RabbitMQ常用命令(一)

启动和关闭 1、启动RabbitMQ rabbitmq-server start & 注意&#xff1a;这里可能会出现错误&#xff0c;错误原因是/var/lib/rabbitmq/.erlang.cookie文件权限不够。 解决方案对这个文件授权 chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie chmod 400 /va…...

在教育领域,AI垂直大模型应用场景总结!

1. 智能教育助手&#xff1a; 这种模型可以通过语音或文本与学生进行交互&#xff0c;提供个性化的学习建议和答疑解惑。根据学生的学习习惯和知识水平&#xff0c;推荐适合的学习资源&#xff0c;并提供实时的辅导和反馈。 2. 智能作文批改助手&#xff1a; 这种模型可以对…...

基于级联广义积分器(CGI)的谐波信号提取MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 此方法可用于信号检测、虚拟阻抗合成、锁相环等方面。 在现有的信号提取方法中&#xff0c;众多学者采用了SOGI法、LPF法以及正交信号发生器等方法。当输入信号中不存在直流分量&#xff0c;只有谐波分量时&…...

Linux--线程-条件控制实现线程的同步

1.条件变量 条件变量是线程另一可用的同步机制。条件变量给多个线程提供了一个会合的场所。条件变量与互斥量一起使用时&#xff0c;允许线程以无竞争的方式等待特定的条件发生。 条件本身是由互斥量保护的。线程在改变条件状态前必须首先锁住互斥量&#xff0c;其他线程在获…...

flutter开发报错The instance member ‘widget‘ can‘t be accessed in an initializer

文章目录 问题描述问题原因解决方法 问题描述 The instance member ‘widget’ can’t be accessed in an initializer. 问题原因 “The instance member ‘widget’ can’t be accessed in an initializer” 错误是因为在初始化器列表中&#xff08;constructor initializer…...

spring项目详细结构目录

这里写目录标题 一、项目结构1、model模型类Student2、mapper 数据访问层接口和映射文件接口类StudentMapper接下来创建名为 StudentMapper.xml 的映射文件 3、service 服务层接口和实现类创建名为 StudentService 的 Java 接口创建名为 StudentServiceImpl 的实现类 4、contro…...

PyTorch实战:从零构建ResNet50模型(CIFAR10训练+测试+ONNX转换)

1. ResNet50模型基础认知 第一次接触ResNet50时&#xff0c;我被它的"残差连接"设计惊艳到了。传统神经网络随着层数增加会出现梯度消失问题&#xff0c;而ResNet通过跨层直连通道&#xff0c;让信息能够无损传递到更深层。这就好比在高速公路上设置应急车道&#xf…...

深度解析PDFMathTranslate:揭秘AI如何实现毫秒级学术文档翻译与精准排版保留

深度解析PDFMathTranslate&#xff1a;揭秘AI如何实现毫秒级学术文档翻译与精准排版保留 【免费下载链接】PDFMathTranslate PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译&#xff0c;支持 Google/DeepL/Ollama/Op…...

旧手机秒变4K摄像头:Iriun Webcam保姆级配置指南(附USB连接技巧)

旧手机秒变4K摄像头&#xff1a;Iriun Webcam保姆级配置指南&#xff08;附USB连接技巧&#xff09; 你是否曾为台式机缺少高清摄像头而烦恼&#xff1f;又或者手头闲置的安卓手机不知如何利用&#xff1f;将旧手机改造成专业级4K摄像头&#xff0c;不仅成本低廉&#xff0c;还…...

LangChainJS审计日志:AI操作可追溯性的完整指南

LangChainJS审计日志&#xff1a;AI操作可追溯性的完整指南 【免费下载链接】langchainjs 项目地址: https://gitcode.com/GitHub_Trending/la/langchainjs 在当今AI应用开发中&#xff0c;确保AI操作的可追溯性和透明性至关重要。LangChainJS提供了强大的审计日志系统…...

实战应用:使用autoclaw在快马平台快速开发销售数据监控看板

最近在做一个销售数据监控看板的需求&#xff0c;发现用autoclaw配合InsCode(快马)平台可以快速实现从开发到部署的全流程。整个过程比想象中顺畅很多&#xff0c;特别适合需要快速验证业务场景的情况。这里记录下具体实现思路和关键点&#xff1a; 数据准备与连接 首先用autoc…...

颈腰椎病引发 “耳后疼痛”:耳根刺痛,可能是颈椎在 “捣乱”

很多人出现耳后持续性刺痛或按压痛&#xff0c;会误以为是中耳炎、腮腺炎&#xff0c;实则部分耳后疼痛与颈椎病变相关。颈椎病变压迫枕大神经&#xff08;从颈椎延伸至耳后&#xff09;&#xff0c;会导致神经分布区域疼痛&#xff1b;同时颈椎肌肉痉挛、僵硬&#xff0c;牵拉…...

DownKyi:B站视频下载工具的全方位技术解析与应用指南

DownKyi&#xff1a;B站视频下载工具的全方位技术解析与应用指南 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#x…...

STC-50kg

【广州兰瑟★电子-杨工】提供的STC-50kg 是美国威世世铨&#xff08;Vishay Celtron&#xff09;旗下一款经典的 S 型拉压双向称重 / 测力传感器&#xff0c;量程 50 公斤 (50kgf / 490N)。 一、核心参数&#xff08;标准型&#xff09; 量程&#xff1a;50 kg (拉力 / 压力双向…...

LFM2.5-1.2B-Thinking部署教程:3步实现Python爬虫数据智能处理

LFM2.5-1.2B-Thinking部署教程&#xff1a;3步实现Python爬虫数据智能处理 1. 引言 你是不是经常遇到这样的问题&#xff1a;爬虫抓取了一大堆数据&#xff0c;但面对杂乱无章的文本内容却无从下手&#xff1f;手动整理不仅耗时耗力&#xff0c;还容易出错。现在&#xff0c;…...

Ubuntu16.04服务器上从零部署LaneNet车道线检测:Tusimple数据集处理全流程避坑指南

Ubuntu 16.04服务器部署LaneNet车道线检测全流程实战 在自动驾驶和智能交通系统中&#xff0c;车道线检测是一项基础而关键的技术。本文将详细介绍如何在Ubuntu 16.04服务器环境下&#xff0c;从零开始部署LaneNet车道线检测模型&#xff0c;并处理Tusimple数据集的全流程。不同…...