
线段树
文章平均质量分 68
CoderCat.
大
展开
-
线段树单点更新hdu1166
学习自https://blog.youkuaiyun.com/metalseed/article/details/8039326#t3先序建子树,然后回溯建立父节点 更新时先递归更新子节点,然后再回溯更新父节点 回溯思想很重要#include <cstdio>using namespace std;const int maxn = 50005;int sum[maxn<<2];...原创 2018-03-30 20:38:45 · 117 阅读 · 0 评论 -
线段树单点替换更新hdu1754
学习自https://blog.youkuaiyun.com/metalseed/article/details/8039326#t3#include <cstdio>#include <algorithm>using namespace std;const int maxn = 200010;int maxtr[maxn<<2];void build(int l...原创 2018-03-30 21:47:43 · 117 阅读 · 0 评论 -
线段树poj2528_hash表(一种题型或者模型)+离散化处理
一、hash表hash表给线段树的某段线段加上一个状态,并且该状态可以被新状态覆盖二、原创 2018-04-06 16:13:02 · 213 阅读 · 0 评论 -
线段树poj3468_区间增减更新
#include #include using namespace std;typedef long long LL;const int maxn = 100010;LL sumtr[maxnLL add[maxnvoid build(int l, int r, int rt);void pushup(int rt);LL原创 2018-04-05 16:51:43 · 121 阅读 · 0 评论 -
线段树hdu1698区间更新模板题
区间更新需要用到延迟标记即每次更新时,不需要更新到底,当搜索的区间在更新或者询问的区间内,就更新该区间并且加上延迟标记然后返回;当下次更新或者询问时,先pushdown(按照延迟标记更新子树),然后再搜索左右子树#include <cstdio>using namespace std;const int maxn = 100010;int mark[maxn<<2];int...原创 2018-04-04 22:13:23 · 147 阅读 · 0 评论 -
线段树hdu2795-在query同时更新
#include #include using namespace std;const int maxn = 200010;int tree[maxnint h, w, n;void build(int l, int r, int rt);int query(int x, int l, int r, int rt);void pushup(int rt);int原创 2018-04-03 22:43:14 · 103 阅读 · 0 评论 -
线段树求逆序对hdu1394
#include <cstdio>#include <algorithm>using namespace std;const int maxn = 5010;int a[maxn];int tree[maxn<<2];//表示该区间已经插入的数的个数void build(int l, int r, int rt);int query(int L, int R...原创 2018-03-31 10:53:08 · 357 阅读 · 4 评论 -
2018 徐州网络赛 H.Ryuji doesn't want to study 线段树
题意:有n本书和q次询问(n,q<=1e5),给定n本书的知识值ai。询问1:i,j,区间[i, j]的价值。询问2:a, b,将第a本书的知识值改为b。PS:[i, j]的价值计算,a[i]xL+a[i+1]x(L-1)+…+a[j-1]x2+a[j],L==j-i+1。线段树维护三个东西 sum[]:单纯的知识值的和 ans[]:价值 len[]:区间长度#includ...原创 2018-09-09 22:34:24 · 333 阅读 · 0 评论