随笔分类 - 线段树
摘要:题目 [AH2017/HNOI2017]影魔 做法 做法1(口胡) 这个做法估计会T 考虑每个数字连向后面第一个比他大的树,对一个区间建一颗树,对于$i<j<k,a_i<a_j<a_k$的询问,即为树上每个点$dep-2$之和,然后其余类似,用莫队维护,时间复杂度:\(O(n\sqrt{n})\),
阅读全文
摘要:题目链接 https://www.luogu.com.cn/problem/P3721 做法 好神的题目!!! 我们重新修改一下链的定义,一条链为$a_1,a_2,a_3,a_4,a_5...$,仅当$a_(∀i>1)$为$a_$的左儿子,或者右儿子。 不难发现,对于一条链,链底旋到链顶,其实只会把
阅读全文
摘要:题目 题目 做法 省流量大师:环状维护$0$子段信息。 线段树做法 转载自:https://www.luogu.com.cn/blog/AutumnKite/solution-p5226 数组倍长以后直接用线段树维护 \(B\),发现每次修改只会修改最多四个 \(B_i\) ,可以直接单点修改。 对
阅读全文
摘要:题目 题目 做法 啊,这道题目一点思路都没有啊。 这么神奇的吗。 就是死命的推式子,这里用一下这位大佬的证明。 当然,写这个博客主要是想讲一下维护平方和和区间加减。 首先,区间的$lazy$标记具有可加性:\((x+k+k)^2=(x+2k)^2\),因此,$lazy$标记可以叠加,只要计算每一个$
阅读全文
摘要:[TOC] 参考文献 "四叉树" "树套树" 以及和zhoufangyuan巨佬的激烈~~♂~~讨论 参考文献 大家好我口糊大师又回来了。 给你一个$n n$矩阵,然后让你支持两种操作,对子矩阵加值和对子矩阵查和。 暴力写法 对于每一行开一个线段树,然后跑,时间复杂度$n^2logn$。 优点: 1
阅读全文
摘要:@[TOC] 线段树 例题 题面 很容易看出时间复杂度为$O(nlogn)$。 练习 1 2 4 5 离散化,然后每个线段树的区间表示的是这个区间的轮廓。 cpp include include include using namespace std; struct node { int l,r,l
阅读全文
摘要:给出题目! "题目界面" 那么,大家一看一般是一脸蒙蔽 因为这确实听***钻,许多人不会打二维线段树,却一直在想线段树怎么打,可悲~~(大佬:花了5分钟打出二维线段树,好难!)~~,那摸,大家,这道题怎么做? 接下来会涉及到离散化与线段树,请自学,抱歉⊙﹏⊙ 那么,这道题呢,重要的是扫描线(如图): 那
阅读全文