首页 > 其他分享 >二维数点

二维数点

时间:2024-01-13 15:55:21浏览次数:11  
标签:right frac log 复杂度 数点 二维 Theta left

有时会遇到 \(\Theta(n)\) 次修改,\(\Theta(n \log n)\) 次询问的二维数点问题。

可以尝试模改线段树,将其从二叉树变成 \(\Theta(\log n)\) 叉树,一共 \(\Theta\left(\frac{\log n}{\log \log n}\right)\) 层。

对每个非叶子节点的 \(\Theta(\log n)\) 个儿子维护其前缀和,单点修改复杂度 \(\Theta\left(\frac{\log^2 n}{\log \log n}\right)\),区间查询复杂度 \(\Theta\left(\frac{\log n}{\log \log n}\right)\)。

得到总复杂度 \(\Theta\left(\frac{n \log^2 n}{\log \log n}\right)\)。

\(\Theta(n \log n)\) 次修改,\(\Theta(n)\) 次询问的二维数点问题也是一样的。

只是对每个非叶子节点的 \(\Theta(\log n)\) 个儿子直接维护一个数组,区间和暴力求,单点修改复杂度 \(\Theta\left(\frac{\log n}{\log \log n}\right)\),区间查询复杂度 \(\Theta\left(\frac{\log^2 n}{\log \log n}\right)\),总复杂度 \(\Theta\left(\frac{n \log^2 n}{\log \log n}\right)\)。

但是线段树可能常数比较大,跑不过直接用树状数组 \(\Theta(n \log^2 n)\) 做?

考虑能否对树状数组也像上面一样模改。

标签:right,frac,log,复杂度,数点,二维,Theta,left
From: https://www.cnblogs.com/FidoPuppy/p/17962442

相关文章

  • 2024-01-10:用go语言,给你一个下标从 0 开始的二维整数数组 pairs 其中 pairs[i] = [sta
    2024-01-10:用go语言,给你一个下标从0开始的二维整数数组pairs其中pairs[i]=[starti,endi]如果pairs的一个重新排列满足对每一个下标i(1<=i<pairs.length)都有endi-1==starti,那么我们就认为这个重新排列是pairs的一个合法重新排列。请你返回任意一个pairs的......
  • 生成二维码
    生成二维码工具类来源网络<!--二维码--><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.1.0</version></dependency><!--使用了Base64--><dependency......
  • QRCoder1.4.3生成二维码,不依赖System.Drawing,解决"未能找到类型或命名空间名QRCode","
    生成二维码1(简单)包引用:<PackageReferenceInclude="QRCoder"Version="1.4.3"/>usingQRCoder;///<summary>///生成二维码///</summary>///<paramname="data">escape后的数据,防止中文等特殊字符引起问题</param>///<par......
  • 二维卷积计算:解析其原理和应用领域
    卷积计算是深度学习中常见的一种操作,它广泛应用于图像处理、语音识别、自然语言处理等领域。其中,二维卷积计算是卷积计算的一种形式,专门针对二维数据,如图像、矩阵等。一、二维卷积计算基本原理二维卷积计算是指对两个二维矩阵进行运算,得到一个新的矩阵。具体来说,给定两个矩阵A和B,其......
  • 二维离散傅立叶变换的性质
    二维离散傅立叶变换的性质周期性线性微分性质旋转性质令则可分离性空域平移性质频域平移性质平均和对称性质......
  • java的二维数组怎么添加数据
    Java的二维数组怎么添加数据在Java中,二维数组是由多个一维数组组成的,可以看作是一个表格或者矩阵。要向二维数组中添加数据,我们可以使用循环来遍历数组的每个位置,并将数据赋值给对应的元素。创建和初始化二维数组在向二维数组添加数据之前,我们首先需要创建并初始化一个二维数组......
  • 微信小程序生成和识别二维码和条码工具
     1、二维码二维码(QRCode)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫......
  • Codeforces Round 918 (Div. 4) (前缀和,权值树状数组,二维偏序, python + golang)
    Dashboard-CodeforcesRound918(Div.4)-Codeforces  fromcollectionsimport*defsolve():a,b,c=list(map(int,input().split()))hs=defaultdict(int)hs[a]+=1hs[b]+=1hs[c]+=1foriinhs:ifhs[i]=......
  • 【Python】【OpenCV】定位二维码
    相较于BarCode,QRCode有明显的特征区域,也就是左上角、右上角、左下角三个”回“字区域,得益于hierarchy中,父子关系的轮廓是连续的(下标),所以这个时候我们就可以通过cv2.findContours()返回的hierarchy来进行定位。我们直接上代码1importcv22importnumpy345......
  • Day41 二维数组
    二维数组多维数组多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。二维数组ina[][]=newint[2][5];以上二维数组a可以看成一个两行五列的数组。二维数组模型图示代码演练packagecom.baixiaofan.array;publiccla......