首页 > 其他分享 > ddd

ddd

时间:2023-03-31 18:45:39浏览次数:37  
标签:同层 log 信息 最右 ddd 递推 前缀

游戏

每个点 \(u\) 提出最深的子树,次深的子树和次次深的子树,记深度为 \((a_u,b_u,c_u)\),对于一个询问 \((x,y,z)\) 就是找一个 \(u\) 满足 \(a_u\ge x\) 且 \(b_u\ge y\) 且 \(c_u\ge z\)。第一维排序扫描线,第二维作为树状数组的下标,记录第三维最小值,总复杂度 \(O(n\log n)\)。

马戏团里你最忙

如果 \(K\) 不大,可以直接暴力 \(O(2^nnK)\)。

如果 \(K\) 大,发现答案数组是可以线性递推的,具体的,\(f_{i,s}\) 表示经过 \(i\) 轮 \(s\) 的答案,将 \(f_i\) 看成一个长度为 \(2^K\) 的数组,有 \(f_i=\sum_{j=1}^mf_{i-j}a_{j-1}\),这个 \(a\) 就是递推式,递推式长度 \(m\) 是 \(O(n)\) 的。有了递推式,可以用线性递推的技巧,\(m^2\log K\) 的预处理,然后 \(O(2^nm)\) 的求 \(f_K\)。

如果不会 BM 找递推式,可以使用高斯消元。

如果给定的树是一条链,我们可以用 \(f_{i,j}\) 表示 \([i,i+2^j)\) 的答案,有如下转移:

\[f_{i,j}=f_{i,j-1}+f_{i+2^{j-1},j-1}+\sum_{k=i+2^{j-1}}^{i+2^j-1}2^{j-1}-2^j\times [v_k的第j-1位是1] \]

求和部分可以用前缀和维护,时间复杂度 \(O(n\log n)\)。

考虑 \(u\) 子树内距离 \(u\) 为 \(d\) 的点,在 BFS 序上是一个区间,如何表示出子数内距离 \(u\) 不超过 \(d\) 的信息呢?

如图,可以表示为两个点一直往最右孩子走的同层前缀和之差。这张图表示了距离 \(u\) 不超过 \(2\) 的信息——\(u\) 往最右孩子走 \(2\) 步的同层前缀信息减去 \(v\) 往最右孩子走 \(2\) 步的同层前缀信息。如果这个点是叶子,那么最右孩子指向假设这个点有孩子,这个孩子 BFS 序上的前一个点,图中虚线的那条边就是对应叶子指向的点。

于是问题转化为一直往右儿子跳,同层前缀信息之和。这个问题和序列上的问题类似,\(f_{u,i}\) 表示距离 \(u\) 往最右孩子走 \(2^i-1\) 步的前缀信息之和,需要用到的信息都能预处理。总的时间复杂度 \(O(n\log n)\)。

还有其它 \(O(n\log n)\) 的做法,常数可能比较大。

标签:同层,log,信息,最右,ddd,递推,前缀
From: https://www.cnblogs.com/aurora2023/p/17277184.html

相关文章

  • 再谈DDD和Microservices
    面对高复杂度的时候我们会做关注点分离,这是一个最基本的哲学原则。技术维度分离,类似MVC这样的分层思想是我们广泛接受的业务维度分离,根据不同的业态来划分系统,比如按售前、......
  • C#/.NET Core跨平台分布式微服务/DDD领域驱动架构设计VIP实战
    阿笨NET课程详情腾讯课堂官网 https://abennet.ke.qq.com/【报名请咨询老师扣扣:422159763】 ......
  • DDD读书笔记
    《DDD实战-欧创新》DDD是什么?“DDD是一种指导思想和方法论,指导拆分复杂业务、划分边界和建设领域模型,并最终指导微服务系统建设落地(draft)”如何使用DDD“使用......
  • 领域驱动设计DDD应用与最佳实践
    领域驱动设计(DomainDrivenDesign,简称:DDD)设计思想和方法论早在2005年时候就被提出来,但是一直没有重视和推荐使用,直到2015年之后微服务流行之后,再次被人重视和推荐使用。......
  • DDD图例4:用例图
     ......
  • DDD实战(01)-概述
    程序设计语言指导怎样把设计更好地落地各种编程范式指导可以用什么样的元素去做设计设计原则与模式指导如何组合分解出来的各个元素分解组合的东西是从哪来?需要你对设计方法......
  • 基于DDD领域驱动设计的go语言实现
    什么是DDD?以下是考虑使用DDD的原因:提供解决困难问题的原则和模式将复杂的设计基于领域模型在技术和领域专家之间发起创造性的协作,以迭代地完善解决领域问题的概念模型。DDD......
  • DDD图例2:业务流程图
              ......
  • DDD图例3:服务蓝图
        ......
  • python - ddddocr验证码识别
    1.ddddocr安装建议使用国内镜像安装pip3installddddocr-ihttps://pypi.tuna.tsinghua.edu.cn/simple2.图片验证码importddddocrocr=ddddocr.DdddOcr(show_a......