随笔分类 -  树状数组

摘要:题目链接:https://www.luogu.org/problemnew/show/P1637 BIT + 离散化。 读题得数据规模需离散化。BIT开不到longint这么大的数组。 对于题目所求的三元上升子序列,我们可以通过枚举1~n作为中间数,记录左边比他小的个数L[i],右边比他大的个数R[ 阅读全文
posted @ 2019-06-13 20:57 Misaka_Azusa 阅读(256) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P3608 乍一看很容易想到O(N^2)的暴力。 对于每个H[i]从i~i 1找L[i]再从i+1~n找R[i],然后比较。 60分(数据够水) 但是这个思路就是很直白的模拟,让人不容易想到如何去优化。 然后我们换 阅读全文
posted @ 2019-06-11 21:47 Misaka_Azusa 阅读(277) 评论(0) 推荐(0)
摘要:题目描述: 定义一个长度为奇数的区间的值为其所包含的的元素的中位数。现给出n个数,求将所有长度为奇数的区间的值排序后,第K大的值为多少。 样例解释: [l,r]表示区间的值 [1]:3 [2]:1 [3]:2 [4]:4 [1,3]:2 [2,4]:2 第三大是2 Input 第一行两个数n和k(1 阅读全文
posted @ 2018-10-30 18:24 Misaka_Azusa 阅读(156) 评论(0) 推荐(1)
摘要:王强怎么这么强啊 王强太强了 二维树状数组 阅读全文
posted @ 2018-07-05 21:36 Misaka_Azusa 阅读(129) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P1972 真是不懂为什么要卡莫队! include include include include include using namespace std; const int maxn = 2000100; i 阅读全文
posted @ 2018-06-22 16:25 Misaka_Azusa 阅读(150) 评论(0) 推荐(0)
摘要:树状数组(Binary Indexed Tree(B.I.T)) 是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只 能查询其中一个元素的值(如果加入多个辅助数组则可 阅读全文
posted @ 2018-03-28 22:01 Misaka_Azusa 阅读(265) 评论(2) 推荐(1)
摘要:题目链接:https://www.luogu.org/problemnew/show/P3368 阅读全文
posted @ 2018-03-12 21:15 Misaka_Azusa 阅读(170) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P3374 留个坑,以后补上BIT的讲解,先留下板子复习用 阅读全文
posted @ 2018-03-12 21:14 Misaka_Azusa 阅读(154) 评论(0) 推荐(0)
摘要:今天接着昨天的继续讲数据结构 今天先是 分块 在统计问题中,尤其是序列问题,经常涉及到区间的操作,比如修改一段区间的元素,询问某个区间的元素的信息。 如果每次都对一整个区间的每一个元素进行操作的话,那可能就很笨重,所以怎么快速地统计某一段区间的信息就成为了问题所在。 我们考虑把整个序列分成若干个区间 阅读全文
posted @ 2018-03-02 15:54 Misaka_Azusa 阅读(222) 评论(0) 推荐(0)

Live2D