
线段树
loi__wzhd
这个作者很懒,什么都没留下…
展开
-
洛谷 P3373 【模板】线段树 2
重温一下线段树,听说蓝桥杯线段树考的比较多,过来复习一下,一个线段树的板子题。题目大意:支持区间加、区间乘、区间查询要求时间复杂度为nlog(n)级别显然线段树(树状数组忘记怎么写了QAQ~ )如果只有区间加法或者只有区间乘法,本题将直接做标记,下放标记即可,单次修改或查询最坏情况下时间复杂度为树的高度,即:log(n),总体的时间复杂度为mlog(n)而本题有加法和乘法两种标记,所以本题的核心就是怎么处理加法和乘法标记的关系如上图,可以解读为:(x+3)* 5 ------------原创 2020-09-22 16:40:49 · 195 阅读 · 0 评论 -
树的统计(树剖)指针版
题目>>http://codevs.cn/problem/2460/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int MAXN = 1e6 + 5;typedef long long ll;ll n,a,b,num[MAXN],q,fir原创 2017-08-18 08:38:56 · 193 阅读 · 0 评论 -
线段树练习1
线段树练习1虽然早就听说过线段树,而且内部讲课也讲了很多次,但今天才下定决心学习(有点懒哈~) 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶节点。 对于线段树中的每一个非叶子节点(编者注:即单点区间,也可以说最后一层)左儿子表示[l,mid],右儿子表示[mid + 1,r]。因此线段树是平衡二叉树,最后的子节点数目为n,即整个原创 2017-08-04 20:13:44 · 276 阅读 · 0 评论 -
线段树练习3
其实这几道题都比较裸的,不过粘一下代码,送给像我一样的初学者,希望有所帮助:题目:http://codevs.cn/problem/1082/区间修改,区间查询#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long ll;cons原创 2017-08-04 20:49:29 · 227 阅读 · 0 评论 -
线段树练习2
这一篇也没什么难度,就直接写代码吧,题目:> http://codevs.cn/problem/1081/单点查询,区间修改:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int MAXN = 4e5 + 5;struct zt{ i原创 2017-08-04 20:44:49 · 206 阅读 · 0 评论 -
线段树练习4
前方预警: 题目:http://codevs.cn/problem/4919/这一题比起其前面难度应该是提升了不少,因为对于一段区间的一部分改变后我们无法确定被7整除的个数,而且在区间加中被7整除的个数也难以更新。关于这样的题我们要学会转化,已知题目要求求被7整除的数,而被7整除的数每7次便会出现一次,那么我们就取一下%,存在数组中就可以了。对于一段区间被七整除的个数,在指针中有很好的处理方法,代原创 2017-08-04 21:01:22 · 222 阅读 · 0 评论 -
洛谷 P3384 【模板】树链剖分(指针版)
题目>>https://www.luogu.org/problem/show?pid=3384#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;typedef long long ll;const int MAXN = 1e6 + 5;ll n,a,b,c,原创 2017-08-19 16:17:59 · 225 阅读 · 0 评论 -
线段树练习5
题目>>http://codevs.cn/problem/4927/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;typedef long long ll;const int MAXN = 4e5;struct zt{ ll l,r,sum,s原创 2017-08-15 08:36:19 · 258 阅读 · 0 评论 -
上帝造题的7分钟2
题目>>http://codevs.cn/problem/2492/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>using namespace std;const int MAXN = 2e5;typedef long long ll;struct zt{原创 2017-08-15 08:39:46 · 325 阅读 · 0 评论