26.1.3 快速幂+容斥 树上dp+快速幂 带前缀和的快速幂 正序转倒序 子序列自动机 线段树维护滑窗

F. Fancy Arrays

快速幂 容斥

数列个数,看起来像快速幂,问题是没有最大值可能很大,直接快速幂的话矩阵太大。

考虑容斥转化成一个矩阵大小O ( x ) O(x)O(x)的快速幂问题:至少有一个元素在[ x , x + k − 1 ] [x,x+k-1][x,x+k1],等价于最小值小于x + k x+kx+k,且最大值大于等于x xx的数列个数,如果最大值就在[ x , x + k − 1 ] [x,x+k-1][x,x+k1],显然满足条件,如果最大值大于等于x + k x+kx+k,那么由于相邻项跨度不超过k kk,从小于x xx的最小值到大于等于x + k x+kx+k的最大值中间,一定有一步会落在[ x , x + k − 1 ] [x,x+k-1][x,x+k1],这类似于离散版的介值定理。

故我们要求的数列个数,就可以由容斥转化为:等价于最小值小于x + k x+kx+k的个数,减去最大值小于x xx的个数。

最小值小于x + k x+kx+k的方案数,从每一步的跨度构成的数组来看,确定了这个数组就能确定数列的形状,每一步跨度都有[ − k , k ] [-k,k][k,k]2 k + 1 2k+12k+1种选择,一共有( 2 k + 1 ) n (2k+1)^n(2k+1)n种形状,然后可以上下平移,对于每一个形状,让他的最小值小于x + k x+kx+k,也就是在[ 0 , x − k + 1 ] [0,x-k+1][0,xk+1],有x + k x+kx+k种选择,总方案数( x + k ) ( 2 k + 1 ) n (x+k)(2k+1)^n(x+k)(2k+1)n

最大值大于等于x xx,也就是所有元素值域都在[ 0 , x − 1 ] [0,x-1][0,x1],且跨度不超过d ddx xx很小,直接矩阵快速幂d p dpdp即可

E. Darth Vader and Tree

树上dp 矩阵快速幂

自相似的树,考虑一个点的儿子,儿子为根的子树,和父亲为根的子树是一样的,可以通过这一点来d p dpdp转移,比如本题,统计到根距离x xx的点,等价于到儿子距离为x − d i x-d_ixdi的点,每个儿子都可进行这样的转移。

注意儿子虽多,但d i < = 100 d_i<=100di<=100,并不多,可以用桶统计各种d i d_idi的儿子,一次一共只有100 100100个转移。并且不同的x xx,转移都是一样的f x = ∑ f x − i f_x=\sum f_{x-i}fx=fxi,只有100 100100个转移,可以考虑矩阵快速幂优化。

C. Fountains

枚举 二分

买一个金币,一个钻石,分别求不超过对应货币数的最大价值即可。

买两个金币,可以枚举一个,然后可知剩余货币,求价值不超过剩余货币的最大价值,把金币按照价值升序,然后维护前缀最大价值,再二分即可。

两个钻石同理

E. Hidden Knowledge of the Ancients

滑窗 map维护元素种类

元素种类随区间边长有单调性,滑窗即可,注意还有区间长度的限制。

C. Monocarp’s String

扫描线前缀和 dp

删去一个区间,剩余的ab相等,等价于选择一个区间a − b a-bab的个数为特定值。数据结构维护a − b a-bab个数的前缀和,枚举所有前缀,对于一个前缀,计算出,可以和他形成合法区间的另一个前缀,前缀和应该是多少,去数据结构查询这个前缀和值的最大长度,即可得到以当前前缀结尾,为右端点的最短合法区间

如果s ss包含三种字母,类似地可以分别维护a − b , b − c , c − a a-b,b-c,c-aab,bc,ca的个数,这三个值共同组成一个前缀的状态,把他们压缩成一个对象,作为m a p mapmap的查询k e y keykey,剩下照旧。

该方法可以拓展到更大的字符集。

D. Flags

带前缀和的矩阵快速幂 状压 回文

不能出现黑白红,红白黑,状态里需要记录前两个元素的颜色。

需要求很长的序列的方案数,考虑矩阵快速幂优化,状压记录前两个颜色,并根据其它规则构造转移矩阵。

求的是区间和,可转化为前缀和,求的是长度[ 1 , x ] [1,x][1,x]之间的序列的方案数,这可以在d p dpdp转移同时维护一个前缀和项,第i ii轮的前缀和项,首先继承i − 1 i-1i1轮的前缀和,并且所有( i − 1 , i ) (i-1,i)(i1,i)的转移,都要复制一份转移到前缀和项,相当于前缀和加上了i ii的方案数。

还要去除逆序,也就是回文串贡献一次,两个互为逆序的只贡献一次,答案是( 全部 − 回文 ) / 2 + 回文 (全部-回文)/2+回文(全部回文)/2+回文,所以还需要求回文个数。回文只需要枚举前一半,后一半根据回文特性已经确定了,也可以套用前面的矩阵快速幂优化d p dpdp,长度除二即可

B. Pairs of Numbers

正序转倒序

状态是个数对,顺着到达目的地,不好做,考虑从目的状态出发倒着来,往往是正着会有很多分支,但倒着来路径是确定的。

比如这题正着每一步有两个分支,倒着等价于( a , b ) (a,b)(a,b)里较大的减去较小的,过程是完全确定的。接下来求步数,由于a , b a,ba,b很大,不能完全模拟。观察模拟过程,实际上就是大的不断减去小的,知道大小关系变化,熟悉数论的可以发现这就是求g c d gcdgcd辗转相减,只是g c d gcdgcd关心最终a , b a,ba,b的值,我们现在关心进行的操作次数,那么对其优化显然就是优化成辗转相除,每次较大的对较小的取模,即可直接跳过一段相同的减法操作,有解的话,最后应该是( a , b ) = ( 1 , x ) (a,b)=(1,x)(a,b)=(1,x)的形式,如果是( 0 , x ) (0,x)(0,x)则无解。

终点有多种选择,注意到( i , n ) ( n , i ) (i,n)(n,i)(i,n)(n,i)是对称的,只有枚举一边,并且i > n i>ni>n的,第一轮会先转移到一个( i , n ) , i < n (i,n),i<n(i,n),i<n,所以我们只用枚举i ∈ [ 1 , n ] i∈[1,n]i[1,n]就是最优的

D. Count GCD

gcd 容斥

gcd是个不断取质因子集合交集的过程,因此首先随着元素增加,gcd一定不断变小。其次增加一个元素之后,新的gcd一定是之前的一个因子。最后来考虑方案数,前一个gcd=y,当前gcd=x,那么这一次加入的元素,一定是x xx的倍数,但不是z = k x , x < z < = y z=kx,x<z<=yz=kx,x<z<=y的任何一个z zz的倍数,否则gcd会是z而不是x。

在值域内,总的x xx倍数有m / x m/xm/x,我们要减去所有至少是一个z = k x , x < z < = y z=kx,x<z<=yz=kx,x<z<=y的倍数的数字的个数,就是合法的元素个数。注意到至少是集合中一个数的倍数,这可以容斥计算。

C. Strong Password

子序列自动机

如果是子序列,也就是能匹配上,我们如何验证?就是经典的子序列自动机,我们把模式串作为自动机,s作为输入的语言,枚举s,根据当前在t上的指针位置,决定t形成的自动机能否转移,如果能转移到结尾就能匹配上。

现在问能否不匹配上,仍然考虑把t作为自动机,s作为输入串,匹配不上就是扫完s,没转移到t的终态,我们能构造t,那贪心的想,就要通过构造,让t的转移尽量慢,也就是,直到s里[ l i , r i ] [l_i,r_i][li,ri]的字符都出现过了,我们才认为t tti ii位置匹配上了,这样匹配时最慢的,如果这样最后仍然匹配上了,则怎么构造t tt,都不存在t tt不是s ss的子序列。

F. Points

线段树维护滑窗

考虑静态。可以枚举z zz,然后对于每个z zz,在[ z − d , z − 1 ] [z-d,z-1][zd,z1]里选两个不同元素作为x , y x,yx,y,假设[ z − 1 , z − d ] [z-1,z-d][z1,zd]元素个数为k kk,那么贡献就是C ( k , 2 ) = k ( k − 1 ) / 2 = ( k 2 − k ) / 2 C(k,2)=k(k-1)/2=(k^2-k)/2C(k,2)=k(k1)/2=(k2k)/2

动态增减元素的话,考虑对值域建线段树,每个位置i ii维护[ i − d , i − 1 ] [i-d,i-1][id,i1]k , k 2 k,k^2k,k2,用一个区间求和线段树,得到所有位置的k 2 , k k^2,kk2,k和,即可求出答案。

这其实是一种不太常见,但也有套路的线段树设计,也就是线段树上i ii点,不对应序列/值域的i ii点,而是对应以i ii开头/结尾的一段区间,这常见于原问题静态时,答案的求法时跑一个定长滑窗,确定了滑窗的端点即可统计答案,那么我们让线段树维护这些滑窗内的情况,即可解决动态问题。

考虑更新,加入一个数i ii,会影响[ i , i + d ] [i,i+d][i,i+d]为右端点的滑窗的k , k 2 k,k^2k,k2,也就是一个区间更新,需要懒标记,懒标记的核心就是p u s h d o w n pushdownpushdown和更新时递归到一个最小区间的更新,两部分逻辑类似,一块考虑。

也就是我们对一个区间的k kk+ f +f+f,这个区间的k , k 2 k,k^2k,k2标记分别会如何变化?k kk的变化就是每一个位置i ii,都+ f +f+f,但前提是i ii位置有元素,所以整个区间的k kk变化是,+ = c n t ∗ f +=cnt*f+=cntfc n t cntcnt是区间内有元素的位置个数,因此区间标记需要增加一个c n t cntcnt,这很好维护,单点修区间和即。k 2 k^2k2的变化,写出增量表达式( k + f ) ( k + f ) − k 2 = ∑ ( 2 k f + f 2 ) (k+f)(k+f)-k^2=\sum (2kf+f^2)(k+f)(k+f)k2=(2kf+f2),这里的求和也是对所有位置i ii来说,前提是i ii位置有元素。故等于2 f ∑ k + c n t f 2 2f\sum k+cntf^22fk+cntf2,用k , c n t k,cntk,cnt标记即可更新。

加入一个数,最后递归到i ii的叶子,更新这一点的c n t = k = k 2 = 1 cnt=k=k^2=1cnt=k=k2=1

删除一个数,对k , k 2 k,k^2k,k2的区间更新和上面类似,可以复用函数,f = − 1 f=-1f=1即可。单点修该则是i ii位置c n t = k = k 2 = 0 cnt=k=k^2=0cnt=k=k2=0

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

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

相关文章

详解JDK自带工具jmap:Java堆内存分析与问题排查

目录一、前言二、jmap核心用途三、常用选项详细说明核心常用选项专属dump-options&#xff08;配合-dump使用&#xff09;特殊选项&#xff1a;-F四、实操命令与输出结果解读实操1&#xff1a;查看Java堆配置与使用情况&#xff08;jmap -heap <pid>&#xff09;执行命令…

Qwen2.5-7B多模态:图文联合处理实战案例

Qwen2.5-7B多模态&#xff1a;图文联合处理实战案例 随着大模型技术的演进&#xff0c;多模态能力已成为衡量语言模型智能水平的重要维度。Qwen2.5-7B作为阿里云最新发布的开源大语言模型&#xff0c;在保持高效推理性能的同时&#xff0c;进一步增强了对图像与文本联合理解的…

计算机毕业设计springboot“红色长征”宣传网站的设计与实现 基于SpringBoot的红色长征精神传播平台的设计与实现 SpringBoot+Vue红色长征记忆展馆网站建设

计算机毕业设计springboot“红色长征”宣传网站的设计与实现&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。1934-1936 年的万里长征&#xff0c;是中华民族精神的高光刻度。把这…

从流量到留量:全域众链的实体商家全链路 AI 经营方案

当下&#xff0c;实体商家的经营竞争早已从 “单点获客” 升级为 “全链路经营” 的较量 —— 仅靠单次营销吸引客流已难以为继&#xff0c;如何实现 “获客 - 留存 - 复购 - 裂变” 的闭环增长&#xff0c;成为决定商家生存与发展的关键。全域众链精准把握这一核心需求&#x…

Qwen2.5-7B案例解析:新闻摘要生成系统实现方案

Qwen2.5-7B案例解析&#xff1a;新闻摘要生成系统实现方案 1. 引言&#xff1a;为何选择Qwen2.5-7B构建新闻摘要系统&#xff1f; 1.1 行业背景与技术挑战 在信息爆炸的时代&#xff0c;新闻内容每天以TB级增长&#xff0c;传统人工阅读和摘要方式已无法满足实时性与效率需求…

Qwen2.5-7B模型架构解析:Transformer改进点剖析

Qwen2.5-7B模型架构解析&#xff1a;Transformer改进点剖析 1. 技术背景与核心价值 近年来&#xff0c;大语言模型&#xff08;LLM&#xff09;在自然语言理解、代码生成、多轮对话等任务中展现出惊人能力。阿里云推出的 Qwen2.5 系列 是继 Qwen 和 Qwen2 之后的又一次重要迭代…

Qwen2.5-7B创业机会:基于模型的商业创意

Qwen2.5-7B创业机会&#xff1a;基于模型的商业创意 1. 技术背景与商业潜力 1.1 Qwen2.5-7B&#xff1a;新一代开源大模型的技术跃迁 Qwen2.5 是阿里云最新发布的大型语言模型系列&#xff0c;覆盖从 0.5B 到 720B 参数的多个版本。其中 Qwen2.5-7B 作为中等规模模型&#x…

计算机毕业设计springboot“互动小课堂”小程序的安全开发和实现 基于SpringBoot的“互动微课堂”教育小程序的设计与实现 SpringBoot+Vue“即时互动学堂”小程序的安全构建

计算机毕业设计springboot“互动小课堂”小程序的安全开发和实现&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。疫情把课堂搬到云端&#xff0c;也让“互动”成为线上教学的生命…

Qwen2.5-7B用户画像:对话数据挖掘与分析

Qwen2.5-7B用户画像&#xff1a;对话数据挖掘与分析 1. 技术背景与研究动机 随着大语言模型&#xff08;LLM&#xff09;在自然语言理解、生成和交互能力上的持续突破&#xff0c;如何精准刻画其用户行为特征与使用模式&#xff0c;已成为优化模型服务、提升用户体验的关键环节…

基于Qwen2.5-7B与vLLM的CPU推理实战详解

基于Qwen2.5-7B与vLLM的CPU推理实战详解 在大语言模型&#xff08;LLM&#xff09;日益普及的今天&#xff0c;如何在资源受限的环境中高效部署和运行模型成为工程落地的关键挑战。GPU虽为首选硬件&#xff0c;但其高昂成本限制了部分场景的应用。相比之下&#xff0c;CPU推理…

Qwen2.5-7B表格问答:Excel数据查询系统

Qwen2.5-7B表格问答&#xff1a;Excel数据查询系统 1. 引言&#xff1a;为何需要基于大模型的表格问答系统&#xff1f; 在企业日常运营中&#xff0c;Excel 和 CSV 等结构化数据文件无处不在。然而&#xff0c;非技术人员面对复杂表格时常常难以快速提取关键信息&#xff0c…

Elasticsearch网络配置一文说清

Elasticsearch 网络配置&#xff1a;从原理到生产实践&#xff0c;一文讲透你有没有遇到过这样的场景&#xff1f;刚部署完一个三节点的 Elasticsearch 集群&#xff0c;信心满满地启动第一个节点&#xff0c;却发现其他两个节点怎么也连不上&#xff1f;日志里反复出现failed …

零基础学电子电路基础:最易懂的电流与电压讲解

从零开始搞懂电子电路&#xff1a;电流与电压&#xff0c;到底是什么&#xff1f;你有没有想过&#xff0c;为什么一按开关&#xff0c;灯就亮了&#xff1f;手机是怎么把电池的“电”变成屏幕上的画面和声音的&#xff1f;这些看似神奇的现象背后&#xff0c;其实都离不开两个…

图解入门:串联与并联电路在电路图中的表达方式

图解入门&#xff1a;串联与并联电路在电路图中的表达方式从一个灯不亮说起你有没有遇到过这样的情况&#xff1f;家里一盏灯坏了&#xff0c;其他灯却照样亮着——这其实是并联电路的典型表现。而如果你玩过老式圣诞灯串&#xff0c;可能经历过“一个灯泡烧了&#xff0c;整串…

Jstat 垃圾回收统计实用指南

目录Jstat 垃圾回收统计实用指南一、基础使用说明1. 核心语法格式2. 快速示例3. 单位说明二、常用命令详解1. -gc&#xff1a;显示 GC 次数、时间及堆内存各区域大小/使用量2. -gcutil&#xff1a;以百分比形式统计 GC 核心信息3. -gccapacity&#xff1a;堆内存与方法区容量边…

USB主机驱动程序枚举过程:完整指南设备识别阶段

USB主机驱动程序如何“看懂”你的设备&#xff1f;——深度解析设备识别全过程你有没有想过&#xff0c;当你把一个U盘插入电脑时&#xff0c;系统是怎么知道它是个存储设备而不是鼠标或键盘的&#xff1f;为什么不需要手动配置端口、中断或地址&#xff0c;操作系统就能自动加…

Qwen2.5-7B网页推理服务搭建:完整部署流程

Qwen2.5-7B网页推理服务搭建&#xff1a;完整部署流程 1. 背景与技术定位 1.1 Qwen2.5-7B 模型简介 Qwen2.5 是阿里云推出的最新一代大语言模型系列&#xff0c;覆盖从 0.5B 到 720B 不同参数规模的多个版本。其中 Qwen2.5-7B 是一个兼具高性能与轻量化特性的中等规模模型&am…

Qwen2.5-7B薪酬报告:行业分析生成

Qwen2.5-7B薪酬报告&#xff1a;行业分析生成 1. 技术背景与应用场景 近年来&#xff0c;大语言模型&#xff08;LLM&#xff09;在企业级应用中的渗透率持续上升&#xff0c;尤其是在自动化文档生成、数据分析和智能客服等场景中展现出巨大潜力。阿里云推出的 Qwen2.5-7B 模…

从零开始部署Qwen2.5-7B|阿里最新大模型本地化实践

从零开始部署Qwen2.5-7B&#xff5c;阿里最新大模型本地化实践 随着大语言模型&#xff08;LLM&#xff09;在自然语言处理领域的广泛应用&#xff0c;越来越多开发者希望将高性能模型部署到本地环境&#xff0c;实现低延迟、高安全性的推理服务。阿里巴巴通义实验室推出的 Qw…

Qwen2.5-7B表格理解:结构化数据解析教程

Qwen2.5-7B表格理解&#xff1a;结构化数据解析教程 1. 引言 1.1 业务场景描述 在现代企业应用中&#xff0c;结构化数据&#xff08;如表格、CSV、Excel&#xff09;广泛存在于财务报表、客户信息管理、库存系统等场景。然而&#xff0c;传统自然语言模型在处理这类数据时往…