随笔分类 -  3.08.0 线段树

摘要:数据结构维护二维平面 首先横着切与竖着切是完全没有关联的, 简单贪心,最大子矩阵的面积一定是最大长 最大宽 此处有三种做法 1.用set来维护,每次插入操作寻找这个点的前驱和后继,并维护一个计数数组,来维护最大值 cpp include include include include include 阅读全文
posted @ 2018-02-19 09:35 Mr_Wolfram 阅读(253) 评论(0) 推荐(0)
摘要:线段树维护哈希值 要求出现长度大于三的等差子序列,我们只要找到长度等于三的就可以了 初看本题没有思路,只能暴力枚举,O(n^4) 后来发现,这个序列是n的一个排列,那么每个数字都只会出现一次 我们可以维护一个 $01$ 序列 B ,表示某个数字是否出现过, 然后我们从左往右枚举等差中项x并将该项在B 阅读全文
posted @ 2018-02-18 15:32 Mr_Wolfram 阅读(172) 评论(0) 推荐(0)
摘要:题目描述 你有一个长度为 $n$ 的数列 $\{a_n\}$ ,这个数列由 $0,1$ 组成,进行 $m$ 个的操作: $1\ l\ r$ :把数列区间$ [l,r]$ 内的所有数取反。即 $0$ 变成 $1$ ,$1$ 变成 $0$ 。 $2\ l\ r$ :询问数列在区间 $[l, r]$ 内共 阅读全文
posted @ 2018-02-13 21:53 Mr_Wolfram 阅读(403) 评论(0) 推荐(0)
摘要:首先这是一道线段树裸题,但是线段树长度不确定,那么我们可以在建树的时候,将每一个节点初始化为 INF,每次往队尾加一个元素即一次单节点更新,注意本题的数据范围,其实并不用开 long long,具体请看注释。 cpp include include include include define ls 阅读全文
posted @ 2017-11-20 21:25 Mr_Wolfram 阅读(216) 评论(0) 推荐(0)