首页 > 其他分享 >Space Harbour

Space Harbour

时间:2024-05-17 21:20:01浏览次数:5  
标签:lazy Space Harbour 节点 权值 区间 dislazy dis

非常好的一道练习懒标记的题目(这种题目就叫做多标记题目)

我们先不考虑维护总和,先分别维护两个量,\(value\)表示\(p\)号节点所代表区间的点的权值,\(dis\)表示\(p\)号节点所代表区间的点的距离和,\(lazy\)表示\(p\)号节点权值的懒标记,\(dislazy\)表示\(p\)号节点距离的懒标记

那么对于\(dis\)和\(dislazy\)来说就跟一般的维护区间加减一样了,非常简单

对于\(value\)和\(lazy\)来说,\(p\)节点所代表区间的权值可能不完全一样,这是这道题目最大的难点;如果说我们不考虑维护题目所要求的总和,只是维护一个权值,那么如果\(p\)所代表区间的所有点的权值都一样,那么\(value\)就为这个权值,否则的话\(value\)为\(0\);然后这里跟"Atlantis"的维护非常像,我们就只考虑叶子节点,一个叶子节点真正的权值就是从这个叶子节点往根节点走,最后一个\(lazy\)所代表的权值

然后我们考虑维护题目所要求的总和

注意这里有两个标记需要下传,无论哪个标记下传(还是说两个都要下传),我们都要保证即将往子节点更新的时候,子节点的所有的量都已经被维护成了除了这次操作的最新的值(就是说比如这次操作是第\(k\)次操作,我们即将进入某一个节点\(q\),那么进入的时候一定要保证\(q\)的所有的量是第\(k-1\)次操作之后的最新的值)

那我们来看看这些量是否已经可以达到上述要求

我们先随意假设一个优先级,就假设权值的更新优先于距离的更新吧

假设现在\(lazy\)要下传,那么考虑\(sum\)如何变化,显然就是\(sum=lazy\times dis\)(其中\(dis\)是子节点的距离和,还没有更新的距离和);如果说\(dislazy\)不下传,那么就没问题(因为就说明第\(k-1\)次操作之后的最新的\(dis\)的值就是我们之前使用的那个\(dis\)),如果说\(dislazy\)要下传,那么现在\(dis\)就要变化,减少\(dislazy\times 子节点区间长度\),而由于前面下传了\(lazy\),说明这个区间的权值都是一样的,故\(sum=value\times dis\)(此时\(dis\)已经被更新了)

假设现在\(lazy\)不下传,如果说\(dislazy\)也不下传,那么没有问题,因为就相当于没有任何更新,否则的话,\(sum\)应该如何变化呢?此时,由于这个区间的每一个点都要减少\(dislazy\),那么每一个点对\(sum\)的贡献就会减少这个点的权值乘以\(dislazy\),所以说\(sum\)就会减少\(dislazy\times 区间权值和\)。也就是说,我们现在维护的量是不够的,我们还要多维护一个区间权值和(注意不能用区间权值代替,因为点的权值可能不完全相同)

剩下的分析就跟上面差不多了,自己分析一下,然后根据代码对照一下

值得一提的是,这里其实到底是\(lazy\)优先级更高还是\(dislazy\)优先级更高是无所谓的

标签:lazy,Space,Harbour,节点,权值,区间,dislazy,dis
From: https://www.cnblogs.com/dingxingdi/p/18198722

相关文章

  • 《RandAugment: Practical automated data augmentation with a reduced search space
    论文标题《RandAugment:Practicalautomateddataaugmentationwithareducedsearchspace》随机增强:缩小搜索空间的实用自动数据扩增技术作者EkinD.Cubuk、BarretZoph、JonathonShlens和QuocV.Le来自GoogleResearch,BrainTeam初读摘要最近的研究表明,数......
  • css-flex布局 space-between最后一行向左对齐
    首先我们实现的是如下图<template><divclass="father"><divclass="child"></div><divclass="child"></div><divclass="child"></div><divclass="child......
  • Rust工作空间(workspace)实践
    本文将介绍如何使用cargoworkspace来管理多个package,并通过实践介绍workspace的一些基础场景下的使用、配置方式。在rust中编写某些中小型项目时,我们通常不会将一个工程拆分为多个package,而是通过一个package下不同的目录模块来实现模块拆分,尽管大部分场景下这种开发方式已经足......
  • Jmeter内存溢出:java.lang.OutOfMemoryError: Java heap space解决思路
    一、问题原因用JMeter压测,有时候当模拟并发请求较大或者脚本运行时间较长时,JMeter会停止,报OOM(内存溢出)错误。原因是JMeter是一个纯Java开发的工具,内存由java虚拟机JVM管理,当内存回收不及时,堆内存不足时,就会报内存溢错误。概念补充:内存泄露:应用使用资源之后没有及时释放,导致应......
  • 解除搜狗输入法Ctrl+Space(Ctrl+空格)占用(未解决)
    描述按下Ctrl+space时,中文输入法会切换语言而不是映射为对应的快捷键操作(如代码建议)后来发现其实不只是搜狗的问题,换了个讯飞还是有这个问题。试错解决(不完美)使用微软拼音治标不治本,微软拼音可以解除占用,但是改回搜狗又不行了。因此这个方法适用于能用的惯微软拼音的人。反......
  • mycat启动报错Could not reserve enough space for 2097152KB object heap
    mycat启动报错:报错1:Couldnotreserveenoughspacefor2097152KBobjectheap找到wrapper.conf修改内存大小为1G #InitialJavaHeapSize(inMB)#wrapper.java.initmemory=3wrapper.java.initmemory=1024#MaximumJavaHeapSize(inMB)#wrapper.java.maxmemor......
  • Ubuntu20文件系统磁盘空间不足low disk space on filesystem root——转载
      Ubuntu20文件系统磁盘空间不足lowdiskspaceonfilesystemroot天然玩家于2022-07-2307:45:00发布阅读量1w 收藏 132点赞数41分类专栏: #Ubuntu 文章标签: filesystem gparted ubuntu版权Ubuntu专栏收录该内容19篇文章1......
  • 《Pyramid Codes: Flexible Schemes to Trade Space for Access Efficiency in Reliab
    问题1:Introduction部分,第五段,[16,12]ERC和3-Copy达到了相同的可靠性,在每一个块独立失败概率为0.01的情况下,这个是怎么证明的。问题2:同上,第五段后半部分,那么多的IO次数是怎么计算出来的。在系统中,要分清各种性能指标,读和写是不一样的,第六段提到的是写性能,主要方法就是先用复制的方......
  • subspace -linux-挂机
     ================subspace===farm=====会话方式=====================================#!/usr/bin/envbashscreen-dmSspc-farm/home/tuoluo/tool/subspace-farmer-ubuntu-x86_64-skylake-gemini-3h-2024-mar-29farm--reward-addressst7KWHjV2EGwbcYgsYM4jxJjQ6CKU......
  • 解决keil单片编程ERROR L107: ADDRESS SPACE OVERFLOW问题及根源分析
    1、将部分声明的不需要修改的变量声明为程序存储器变量,即在变量名前增加code关键字,如:unsignedcharcodeled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};当然,我们也可以使用关键字xdata将数据存储到片......