https://oi wiki.org/ds/seg/ poj3468 区间增减值,区间和。 线段树思想:利用二叉树将每一个区间所需要的值都记录下来。 lazy思想:延迟对叶子节点的修改,要用到的时候才真的去修改,lazy数组记录修改的值。 ...
分类:
其他好文 时间:
2019-11-27 00:35:48
阅读次数:
61
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 题目分析:对于给出的一个很长的区间,对其进行单点更新值和区间求最大值的操作,由于查询的区间很大,且查询次数多,这里用线段树求解将是十分合适的 注意点:1.对于存放线段树的数组大小需要开大一些 2. ...
分类:
其他好文 时间:
2019-11-07 15:00:10
阅读次数:
65
实为1027练习题C 遥色点对题解 给出一张由编号1到n的n个点和m条边构成的无向图。每条边都有一定的长度。 定义,一条路径的“代价”:该路径上最长一条边的长度。 定义,点x到点y的“点距”:点x到点y的最小代价。 图中每个点都被涂上了颜色,第i号点的颜色编号为Ci。 满足x=K 的任意一对点(x, ...
分类:
其他好文 时间:
2019-11-04 17:15:21
阅读次数:
71
区间修改: #include<bits/stdc++.h> using namespace std; const int N=1e5+5; int sum[N<<2],lazy[N<<2],a[N]; void pushup(int rt) { sum[rt]=sum[rt<<1]+sum[rt<< ...
分类:
其他好文 时间:
2019-10-26 20:51:14
阅读次数:
104
POJ - 3468 整理了个新的线段树的模板,暑期集训的时候学长给的模板,每个节点单单存了自己所要维护的内容,还是少了点。导致在写pushdown的时候,len我会有点难写。所以就整理个新的模板。 每个节点还存了l,r,lazy,len,写起来思路清晰多了。 #include<iostream> ...
分类:
其他好文 时间:
2019-10-06 22:09:50
阅读次数:
93
题目链接 题意: 给定n个数,q次询问,查询当前区间最大值与最小值的差值 题解: 线段树模板题 区间查询最大值、最小值 代码: #include<iostream> #include<stdio.h> #include<math.h> #include<algorithm> #include<vec ...
分类:
其他好文 时间:
2019-10-03 16:26:04
阅读次数:
52
"P2023 [AHOI2009]维护序列" 指定一个区间 加上或者乘以 V, 查询一个区间所有元素和%P 与纯加法线段树不同的是,lazy_tag 的传递 (x + y) v = x v + y v。 所以每次乘法,都要把加法的lazy_tag v 而加法与加法线段树的操作一样 c++ inclu ...
分类:
其他好文 时间:
2019-09-06 13:10:44
阅读次数:
88
不要当线段树都不会敲的菜鸡了。 线段树所要提供的是查询一个区间 内的信息,并允许修改操作。 节点数据向上更新 对于区间求和: 对于区间求最值: 节点懒惰标记向下传递 对于区间求和: 对于区间求最值: 建树 更新: 查询: ...
分类:
其他好文 时间:
2019-09-05 00:35:52
阅读次数:
100
array Time Limit: 1500ms Memory Limit: 256M Description You are given an array . Initially, each element of the array is unique.Moreover, there are in ...
分类:
其他好文 时间:
2019-08-24 15:29:31
阅读次数:
66
某大佬的模板#include <iostream> #include <cstdio> typedef long long LL; LL n, a[100005], d[270000], b[270000]; void build(LL l, LL r, LL p) {//建树 if (l == r... ...
分类:
其他好文 时间:
2019-08-24 10:01:06
阅读次数:
60