随笔分类 -  线段树

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