首页 > 其他分享 >tricks I

tricks I

时间:2024-01-30 15:01:49浏览次数:30  
标签:二分 log tricks mid 区间 复杂度

1.

P2824 排序

碰见这种只有最后有一个查询的问题我们可以考虑二分最后的答案。

具体地,对于当前 \(mid\),把所有小于 \(mid\) 的设为 \(0\),其他的设为 \(1\)。此时我们只需要维护最后的位置是否大于 \(mid\) 就好。

那么每次升降序的排序就很好办了。我们用线段树维护一个区间和,也就是这个区间有几个 \(1\)。

升降是一样的,以升序讨论:

令区间长度为 \(l\),有 \(z\) 个 \(0\),\(o\) 个 \(1\)。

我们直接把前 \(z\) 个区间赋值为 \(0\),其他的赋值为 \(1\)。

那么每次二分后我们就知道这个地方是大于等于 \(mid\) 还是小于 \(mid\)。

然后我们就知道答案了。

复杂度:二分是 \(\log n\) 的,每次操作是 \(q\log n\) 的,所以总复杂度是 \(O(q\log^2 n)\)。

标签:二分,log,tricks,mid,区间,复杂度
From: https://www.cnblogs.com/Zsq20100122/p/17997100

相关文章

  • Essay - OI tricks
    ......
  • CV常用Tricks
    训练CV比赛常用Tips&Tricks目录引言1.图像增强颜色增强RGBNormBlackandWhiteBenGraham:Grayscale+GaussianBlurHue,Saturation,BrightnessLUVColorSpaceAlphaChannelYZColorSpaceLumaChromaCIELabYUVColorSpaceCenterCropFlippingsRandom......
  • 洛谷 P8955 「VUSC」Card Tricks
    洛谷传送门很显然每个数的每一位最多只会修改一遍。于是拆位,每一位开个并查集,存下一个不拥有这一位的数,就可以暴力修改了。但是空间是\(O(n\logV)\)的,炸了。于是可以考虑手写i24类,同时并查集寻找祖先不要用递归版的路径压缩,然后就过了。code//Problem:P8955「VUSC」......
  • Python Tricks
    1.同时按照一个list的大小排序两个listdefreturn_sorted_list(cclass):namelist=[]numlist=[]forcatincclass.cat:namelist.append(cat.catName)numlist.append(cat.catNum)#排序name_num_zip=zip(namelist,numlist)......
  • 高级统计 | Tricks & Review
    打算写一个综合性比较强的文章。全文分为六个章节:基本概念,回归,分类,模型选择,评价指标,无监督学习。基本概念1基本概念线性代数的知识十分有意义。在此假定已知矩阵的加减乘运算。1.1矩阵的初等变换初等变换专门设计用来执行某种操作,如行(列)交换、行(列)倍乘,或者将一个行(......
  • Tricks
    图论拓扑排序中有形如"让某个点尽量早出队”的限制,可以建反图转化为“让某个点尽量晚出队”的形式。P1954,P3243。\(k\)个点的LCA为dfs序最大和最小的两点的LCA。根分别到\(k\)个点路径的并集可以差分为根到\(k\)个点的路径减去根到dfs序相邻两点的LCA的路径。数据结构......
  • OI Tricks
    记录一些见到的感觉很有用的tricks。平均值对于和的平均值(形式化地,\(\bara=\dfrac{\sum_{i=1}^na_i}{n}\)),可以转化成\(a_i-\bara\)然后和\(0\)乱搞。异或哈希就是xorhash,可以在CF上找到详细教程:Link。主要用于只关心元素集而不关心顺序的时候。(可能......
  • OI Tricks
    记录一些见到的感觉很有用的tricks。平均值对于和的平均值(形式化地,\(\bara=\dfrac{\sum_{i=1}^na_i}{n}\)),可以转化成\(a_i-\bara\)然后和\(0\)乱搞。异或哈希就是xorhash,可以在CF上找到详细教程:Link。主要用于只关心元素集而不关心顺序的时候。(可能......
  • Tricks
    枚举子集:j=(j-1)&i,复杂度为\(\mathcalO(n^3)\)树上链加,单点和等于单点加,子树和。不好处理的区间询问考虑离线扫描线或者可持久化数据结构。区间,树链询问有可减性时考虑差分。对于只合并,不分裂的东西,考虑启发式暴力合并。流题建模时注意费用流先保证最大流,要检......
  • Tricks
    用可持久化线段树维护非递归线段树的树链信息可以高效地解决区间半群问题。线段树维护的序列长度要保持不变。关于$d$(约数个数函数):$d(nm)=\sum_{x\midn}\sum_{y\midm}[\gcd(x,y)=1]$;由此可以推导出当$m$为质数,$d(nm)=2d(n)-[m\m......