首页 > 其他分享 >整体二分的复杂度

整体二分的复杂度

时间:2024-02-22 20:36:45浏览次数:29  
标签:二分 frac log sum 整体 aligned 复杂度

这里先写如何证明普通整体二分的复杂度是 \(O(n\log n\log V)\) 的:

考虑如何将复杂度卡到这个上限。显然要使得每个询问的答案均匀的分布在值域 \([1,V]\) 中,也就是在每次值域分半时,操作数(询问和修改)也分半,即:

\[\begin{aligned} T(n,V)&=\\ &=2T(\frac{n}{2},\frac{V}{2})+n\log n\\ &=\sum_{i}2^i\frac{n}{2^i}\log\frac{n}{2^i}\\ &=\sum_{i}n(\log n-i)\\ &=n\log n\log V -n\frac{\log V(\log V+1)}{2} \end{aligned} \]

我们将最后一项忽略就得到了整体二分的复杂度是 \(O(n\log n\log V)\)。

标签:二分,frac,log,sum,整体,aligned,复杂度
From: https://www.cnblogs.com/fzrcy/p/18028086

相关文章

  • 代码随想录算法训练营day 1 | 704 二分查找 27 删除元素
    704二分查找数组基础数组空间地址连续、随机访问时间复杂度O(1)、删除和移动时间复杂度O(n)vector和array区别:vector底层实现为array;array是栈上开辟空间、vector是堆上开辟空间;array不支持迭代器访问,支持指针和索引、vector还支持迭代器访问二分查找适用场景有序数组、数组......
  • # 代码随想录算法训练营day01 | leetcode 704. 二分查找、35.搜索插入位置、34.在排序
    题目链接:704.二分查找-简单题目描述:给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示......
  • 二分查找
    1.二分查找的必要条件用于查找的内容逻辑上来说是需要有序的,必须是有序序列查找的数量只能是一个,而不是多个2.二分查找的思想因为是有序序列,所以查找目标如果小于序列的中间值,就可以排序另一边注!!!不用纠结序列的长度是不是基数,奇数偶数的逻辑都是一样的3.代码来喽packa......
  • linux 配置密码复杂度
    首先修改/etc/pam.d/system-auth文件找到passwordrequisitepam_cracklib.so这么一行替换成如下:passwordrequisitepam_cracklib.soretry=5difok=3minlen=10ucredit=-1lcredit=-3dcredit=-3dictpath=/usr/share/cracklib/pw_dict 修过完成后,保存退出,修改mzj用户密......
  • 冒泡排序时间复杂度分析
    冒泡排序(升序)时间复杂度分析原理:通过从前往后遍历两两对比,当前一个数大于后一个数,则交换位置,最大的数可以遍历到最右侧不断从后缩小数组范围(end--),当end到第一个元素时停止voidSwap(int*a,int*b){inttmp=*b;*b=*a;*a=tmp;}voidBubbleSort(int*arr,i......
  • 二分法
    通往奥格瑞玛的道路(洛谷P1462)题目大意无向图中每走一条路会遭受攻击损失一定血量,当血量为负时则无法到达,每到一个城市都会收取一定费用包括起点和终点。现求在能到达终点的所有方案中找出城市缴费最多的一次中的最小值。解题思路二分法+dijkstra,二分城市缴纳费用查找节点。......
  • 算法第一课:复杂度引入
    算法复杂度算法复杂度分两种,时间复杂度和空间复杂度。分别代表了算法的用时,以及算法所占用的内存空间。复杂度越小,运行效率越高。复杂度表示法一般用大写字母\(O\)表示,称为大\(O\)表示法。比如\(O(n)\),\(O(n^2)\)等。这里的\(n\)代表了算法的输入规模,比如数组的长度,链......
  • 路径覆盖与二分图匹配一一对应
    对任意一种路径覆盖,在二分图上选对应的边,肯定选出来的是一组匹配这就对应上去了难的主要是将二分图对应到一种路径覆盖上面去我们假设最开始把每个独立的点当做一条路径(即每个点既是起点也是终点),然后我们在二分图中每选一条边(注意是匹配边),就在DAG中选择对应的边,由于每次选择的是......
  • WQS二分学习笔记
    WQS二分WQS二分是一种可以处理一类带有限制的问题的方法,这种限制一般是恰好选\(k\)个的形式,而且要求原问题有凸性。比如函数是上凸的,那么斜率就递减,如果我们去二分这个斜率,那么可以快速求出切点,而切点横坐标代表我们选择了多少个,于是我们就可以根据这个数目和题中要求的\(k\)......
  • 【C++】假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。
    题目:假设链表中每一个节点的值都在0-9之间,那么链表整体就可以代表一个整数。给定两个这种链表,请生成代表两个整数相加值的结果链表。数据范围:0≤n,m≤1000000,链表任意值0≤val≤9要求:空间复杂度O(n),时间复杂度O(n)例如:链表1为9->3->7,链表2为6->3,最后生成新的结果链表......