首页 > 其他分享 >天使玩偶

天使玩偶

时间:2024-02-27 23:01:02浏览次数:12  
标签:12 天使 树状 最大值 16 玩偶 修改 数组

来解释一下许多细节和疑问

在简化问题考虑左下中,为什么按照横坐标从小到大排序就好了?不应该还要以纵坐标为第二关键字排序吗?不然有可能某次询问\((x,y)\)的下面一个点\((x_i,y_i)\)(\((y_i<y)\))还没有更新就轮到\((x,y)\)了,这就无法统计了啊?

答:如果单独考虑左下的话,这个做法确实有问题,也的确需要以纵坐标为第二关键字排序。但是如果考虑四个方向的话,只以横坐标排序就是没问题的,上面说的这种情况会在其他时候被统计到。比如就说上面说的这种情况,那么当这种情况出现的时候,我们左下的确是无法统计\((x,y)\)的,但是轮到统计右下的时候,我们此时(相对于左下)是倒着循环的,之前在左下没有被先添加进去的\((x_i,y_i)\)说明他在序列中的位置在\((x,y)\)之后,所以此时就一定会被先添加,然后就会被统计了

为什么可以用树状数组统计没有可加性的最大值?

答:我们考虑一下为什么树状数组不能统计最大值。翻到蓝书的P203,看看那个树状数组的图,想一下如果我们没有修改操作而是只有初始的序列,那么我们如何更新树状数组?答案当然就是对每一个树状数组,对他的所有儿子取最大值(比如\(c[16]=max(c[8],c[12],c[14],c[15],a[16])\)),没有修改操作的情况下,这个显然是对的(\(c[i]\)维护的就是\([i-lowbit(i)+1,i]\)的最大值)。那我们现在加入修改操作。如果我们将\(a[i]\)修改为\(k\),用最暴力的方法,如果更新\(c\)数组?这里不太好用文字说明,我先举一个例子。比如修改\(a[12]\),那我们先找到\(c[12]\),令\(c[12]=max(c[10],c[11],k)\),然后再找到\(c[16]\),令\(c[16]=max(c[8],c[12],c[14],c[15],a[16])\)。所以就是找到对应位置的树状数组,然后一路往上,对经过的每一个节点,都要重新对其所有儿子取最大值。之所以要这么做,是因为有可能会出现一种情况,比如\(c[12]\)刚好等于\(a[12]\),而\(a[12]\)恰好又是\([9,12]\)的严格最大值,而我们修改的\(k\)刚好严格小于\(a[12]\),这下就没办法直接说明\(c[12]\)最新的最小值了,所以我们必须比较暴力的更新。然而对于一般的问题来说,即使我们暴力更新了,我们也没办法查询\([l,r]\)的最大值,因为最大值是没有可加性的。但是回到这一道题目,可以证明,四个方向都不会出现上述说明的情况,比如统计左下方的时候,扫描到一个点\((x_i,y_i)\),由于我们按照了\(x\)从小到大排序,此时修改序列的\(a[y_i]\),一定能被修改成功(也就是上文说的\(k\)一定大于\(a[y_i]\)),于是就不会出现上文说的情况,所以就可以像代码一样区间更新。而这道题目刚好又是只用查询\([0,y]\)的最大值,所以即使不满足可加性问题也不大

为什么统计左上的时候修改的位置要变为\(10^6-y_i\)?

答:就像上文提到的,这里之所以能用树状数组是因为我们不用满足可加性,查询的是\([0,y]\),这里为了继续利用这个性质,由于我们此时要查询的是\([y,10^6]\),所以我们要把他倒过来统计

最后提一嘴时间复杂度的计算,一共有\(log(N+M)\)层,每层的总时间复杂度\((N+M)log(N+M)\),所以时间复杂度为\(O((N+M)log^2(N+M))\)

代码就看打卡代码,写的很好,学习简化代码的技巧

另外这道题目可以转化成三维偏序问题,加入时间维即可,想下怎么做

标签:12,天使,树状,最大值,16,玩偶,修改,数组
From: https://www.cnblogs.com/dingxingdi/p/18038640

相关文章

  • 深入理解 python 虚拟机:GIL 源码分析——天使还是魔鬼?
    深入理解python虚拟机:GIL源码分析——天使还是魔鬼?在目前的CPython当中一直有一个臭名昭著的问题就是GIL(GlobalInterpreterLock),就是全局解释器锁,他限制了Python在多核架构当中的性能,在本篇文章当中我们将详细分析一下GIL的利弊和GIL的C的源代码。选择GIL......
  • 你说的玩偶呢(未完待续...)
    俗话说爱屋及乌,我也开始了解各种玩偶了,攻略了许多,肯定不是无所谓的攻略,这些都是白白的心爱小玩偶呀。迪士尼雪莉玫ShellieMay(白白没单独的图片,只能找个网图咯)2010年1月22日出生于东京迪士尼,她和达菲有着相似的外形,她也是达菲的第一个好朋友。雪莉玫乐观开朗,心灵手巧特点:长......
  • 《会有天使替我来爱你》楔子
     “为什么喜欢我?”她总是爱问这个问题,从春天问到夏天,从秋天问到冬天。而无论在哪个季节,他的笑容都温柔得如同从树荫洒落的阳光。“因为我从小就喜欢你啊。”“那……会不会是因为你没有跟别的女孩子交往过。如果你接触更多女孩子的话,会不会忽然发现其实你喜欢的并......
  • 邓芝说:上国天使,不拜小邦之主
     邓芝(178—251),字伯苗,义阳郡新野县(今河南新野)人。邓芝是东汉名将邓禹之后,三国时蜀汉重臣。他初为郫县令,后升为广汉太守,任官期间公廉且有政绩,后升入朝中为尚书。刘备逝世后,邓芝奉命出使吴国,成功修复蜀吴两国关系,并深为吴王孙权所赏识。建兴十二年(234年),邓芝任前军师、前将军,领兖州......
  • 上帝的完美安排:孩子的守护天使
      上帝的完美安排:孩子的守护天使      Onceuponatimetherewasachildreadytobeborn.SoonedayheaskedGod,“TheytellmeyouaresendingmetoearthtomorrowbuthowamIgoingtolivetherebeingsosmallandhe......
  • K-D Tree模板/P4169 [Violet]天使玩偶/SJY摆棋子
    \(\color{purple}\text{P4169[Violet]天使玩偶/SJY摆棋子}\)以本题为例题讲解模板怎么写。思路\(\text{K-DTree}\)是一种类二叉查找树,不过元素是多维的,所以每次对于子树的划分也是依据不同维度的。本题使用二维的\(\text{K-DTree}\),这样每次将图分成左右子树其实就是将......
  • Bing的AI聊天使用体验
    Bing开启了AI聊天功能,我们这里做一个简单的测评,看看各种AI是否达到预期效果。PS:没有“魔法”的各位就不用看下去了1.登陆打开edge,遇到的第一个问题就是,使用“魔法”后,登陆报错0x80190001(不登录每天的聊天次数有限)搜索资料后发现一个好用的解决方式,下载fiddler,打开win......
  • 我每天使用的 Chrome 快捷方式
    我最喜欢的浏览器是谷歌浏览器。我想与您分享一些我每天使用的快捷方式。他们让我的生活变得更好。你会注意到很多这些快捷方式只是避免了相对容易的鼠标移动。例如,按下CTR......
  • 天使玩偶 解题报告
    在1145141919810天前,SX看了看cdq分治和整体二分,照着题解打了代码,照着代码理解了下这两种东西是干嘛用的。然后他就自信的以为自己理解了这两种东西。其实不然,啥叫你......
  • 今天使用springboot连接redis,报错:Redis is running in protected mode because prot
    这是因为redis的配置文件reids.conf配置了保护模式,protected-mode解决:1.vi文件名进入文件,/protected-mode快速定位,把这个模式关闭2.一旦修改了配置文件,需要重写启......