CF div4 1003(H)

news/2025/2/12 16:00:41/文章来源:https://www.cnblogs.com/jjjxs/p/18711262

H

贡献法

考虑计算01串中每一位对答案的贡献并求和:

由于每个连续段的贡献只有1,故可设定一个连续段的贡献是由这个连续段的第一个数字造成的。那么计算某一位的贡献,就只需要让这个数字成为某个连续段的开头即可。

具体地,假设计算第\(i\)位且\(s[i]=0\)。要计算这一位对答案的贡献,则要让这一位作为所在连续段的开头,那么这一位紧左边的连续的若干0就不能加入到当前子序列中,直到遇到 左边最近的1 或者 空。而这一位右边的任意位的选取是没有限制的,因为已经规定了贡献是开头引起的,因此紧后面即使仍有连续若干0,计算的仍是该位的贡献,没有影响。这样就可以用式子来表示每一位的贡献了:

\(i\) 位的贡献(设\(s[i]=0\))式子为:

\[(1+\sum_{j<i,s[j]=1}2^{j-1}) * 2^{n-i} \]

其中加1是考虑\(s[i]\)左侧无数字的情况;乘号左边为第 \(i\) 位左侧所有1的位置,对于任意 \(j<i且s[j]=1\),都可以作为当前子序列中\(s[i]\)最左侧的字符,那么\(s[j]\)左侧的字符就可以随意选取了(因为有\(s[j]=1\)隔着\(s[i]=0\),就保证了不会让\(s[i]\)的贡献消失,那么\(s[j]\)左侧的任意位就没有约束);而乘号右侧对应\(s[i]\)右侧任意位也是可随意选取的。

\(O(n)\)预处理即可计算当前字符串的答案。现在考虑翻转某个字符后如何快速计算新的贡献:

\(s[i]\)\(0\) 变为 \(1\),则\(s[i]\)这一位本身一定有影响;根据式子可知\(s[i]\)的修改不会对\(s[i]\)左侧每一位的贡献有影响(证明略),而会对\(s[i]\)右侧每一位的贡献有影响 —— 对于任意 \(j \in [i + 1,n]\)\(s[j]=0\)时,\(s[j]\)左侧的1的数量增加了(第\(i\)位的影响),而\(s[j]=1\)时,\(s[j]\)左侧的0的数量减少了(也是第\(i\)位的影响)。因此还需要考虑后缀贡献的变化。

考虑用什么数据结构维护整个过程:计算初始式子,需要求每一位相同数字的\(2^{j}\)的前缀和;而修改时考虑后缀的贡献变化,也需要维护相同数字的\(2^{j}\)的后缀和。而由于涉及到修改字符,前缀和与后缀和是在动态变化的,因此树状数组是最合适的维护动态前后缀和的数据结构。具体细节见代码。

code

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/882604.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

APIPark 新增 AI 大模型负载均衡,APIKey 资源池以及 AI Token 消耗统计等重磅功能!

开发者们好!APIPark V1.4 功能更新给大家带来「负载均衡」、「APIKey 资源池」以及「Token 消耗统计」等重要功能,看看是否能帮助到大家更好地使用 AI 大模型~ V1.4 版本说明新功能 [❤️新增] 新增支持 AI 模型负载均衡:同时接入多款大模型,当原定的 AI 服务商无法访问时,…

活动营销系统

一、整体架构图二、核心业务系统介绍 2.1.接入层统一异常处理逻辑2.2.邀请服务逻辑2.3.权益发放服务2.4.排行榜服务 2.4.1.榜单服务数据结构 数据结构分为两块:配置中心数据,因为排行榜没有后台配置平台,只能将配置数据放到配置中心,具备实时更改配置的能力 数据表,主要是排行榜…

004 条件渲染

1、v-ifv-if指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回true值的时候被渲染。<p v-if="flag">我是孙猴子</p>data(){return{flag:true}} 2、v-else你可以使用 v-else 指令来表示 v-if 的"else块"<p v-if="flag&quo…

Tinyfox 简易教程之:Hello World!

Tinyfox程序设计系列教程之入门篇一,什么是 Tinyfox: Tinyfox 是一款自带 HTTP 服务器的以 WebApi、WebSocket 及“动态HTML”为核心功能的超轻量级的独立性极强的高性能 Web 应用程序基础框架。 Tinyfox 简单易用,性能强劲,跨平台,既支持 Linux 也支持 Windows,既支持 x…

中电金信:更智能、更精准、更专业,中电金信AI产品全栈接入DeepSeek

短短两周的时间,AI届新星DeepSeek凭借低成本、高性能和开源策略,以“中国速度”席卷全网,逆袭成为全球用户量增速最快的AI模型。作为大模型领域的一匹黑马,DeepSeek为千行百业提供了AI解决方案的新选择。2025年开工首日,中电金信研究院便第一时间在产品平台、智能应用、智…

deepseek基础篇--本地知识库推理

一.Ollama 搜索安装 dmeta-embedding-zh https://ollama.com/shaw/dmeta-embedding-zh dmeta-embedding-zh 是一个仅含 4 亿参数的中文嵌入模型,适用于多种场景。它在 MTEB 基准测试中表现出色,尤其适合语义检索、RAG 和其他 LLM 应用。 安装成功 二、使用工具 Cherry Studi…

认识嵌入式开发需要的设备

认识嵌入式开发需要的设备开发板 Arduino用于快速原型设计和学习嵌入式系统基础树莓派用于学习Linux嵌入式系统和复杂应用开发STM32开发板用于学习ARM Cortex-M系列微控制器的开发ESP32开发板用于学习Wi-Fi和蓝牙等无线通信技术的开发GD32开发板调试工具 示波器观察电信号的波形…

nging Go语言Web管理面板docker-compose部署测试

Nging是一个网站服务程序,可以管理和配置 Caddy 和 Nginx 站点,并附带了实用的周边工具,例如:计划任务、MySQL管理、Redis管理、FTP管理、SSH管理、服务器管理等。Nging是一个网站服务程序,可以管理和配置 Caddy 和 Nginx 站点,并附带了实用的周边工具,例如:计划任务、…

近端策略优化(PPO)算法的理论基础与PyTorch代码详解

近端策略优化(Proximal Policy Optimization, PPO)算法作为一种高效的策略优化方法,在深度强化学习领域获得了广泛应用。特别是在大语言模型(LLM)的人类反馈强化学习(RLHF)过程中,PPO扮演着核心角色。本文将深入探讨PPO的基本原理和实现细节。 PPO属于在线策略梯度方法的范畴…

定制化训练DeepSeek模型:LoAR、COT推理与SFT技术应用

DeepSeek-R1 模型微调系列DeepSeek-R1 模型微调系列一. 前言介绍本文内容:1.1 项目背景1.2 LoRA和 QLoRA 简介1.3 LLaMA 架构和 Qwen 架构LLaMA 架构Qwen 架构二. 环境准备2.1 Unsloth 安装(显卡版本-暂时不用)2.2 创建Python项目2.3 python 依赖库2.2 LoRA peft 安装2.3 Wa…

Ubuntu Linux部署DeepSeek(转载用于学习)

合集 - DeepSeek(4)1.Ubuntu Linux部署DeepSeek02-062.Windows11本地部署DeepSeek加速02-073.DeepSeek部署本地知识库02-084.DeepSeek+Zotero02-11收起 技术背景 DeepSeek是这段时间最热门的话题之一,其蒸馏模型可以实现低成本而高质量的推理,使得我们现在可以在本地小型化的…

deepseek 本地搭建 知识库 使用gpu cpu

下载安装LM Studio官网地址: https://lmstudio.ai/如图,下载完成直接下一步下一步安装即可. 不能飞行上网就用这个网站下载模型 https://hf-mirror.com/Rust编程语言群 1036955113 java新手自学群 626070845 java/springboot/hadoop/JVM 群 4915800 Hadoop/mongodb(搭建/开发…