线段树
wspl654321
。。。。。。
展开
-
线段树 洛谷 p1531 I hate it(I hate it too)
这里写链接内容 线段树模板 字符串是一个很诡异的问题。。。。#include<cstdio>#include<iostream>#include<string>#define q 200000using namespace std;int a[q+5],s[q<<2+5];void bu(int o,int l,int r)//建树{ if(l==r) {原创 2016-12-23 16:45:27 · 280 阅读 · 0 评论 -
洛谷p3372 线段树模版
这里写链接内容#include<cstdio>using namespace std;int n,m;int a[230000];struct yuy{long long l,r,len,sum,add;}s[999999];void bu(int o,int l,int r){ s[o].l=l; s[o].r=r; s[o].len=r-l+1;原创 2016-12-30 21:19:19 · 328 阅读 · 0 评论 -
李超线段树
现在要求你在线动态维护一个二维平面直角坐标系,支持插入一条线段,询问与直线x=x0相交的所有线段中交点y的最大/最小值–李超线段树解决的问题现在我们只考虑询问最大,事实上最小是同理的线段树维护覆盖这个区间的”最优势线段”,”最优势线段”指覆盖此区间且暴露最多的线段比如对于区间A红色为”最优势线段”可以证明对于一个位置的询问,答案一定在所有包含这个位置的区间的”最优势线段”里...转载 2018-03-10 14:12:42 · 264 阅读 · 0 评论 -
P4243 [JSOI2009]等差数列
P4243 [JSOI2009]等差数列 这个题可以用差分做 因为等差数列的性质就是差相等 我们维护这些东西 当前区间的左端点的数值 ->vl 当前区间的右端点的数值 -> vr 当前区间如果左右端点都不选有多少个等差数列 -> s[0] 当前区间如果只选左端点有多少个等差数列 -> s[1] 当前区间如果只选右端点有多少个等差数列 -> s...原创 2018-03-10 16:19:19 · 316 阅读 · 0 评论 -
P3313 [SDOI2014]旅行
树链剖分+有颜色的线段树// luogu-judger-enable-o2#include<cstdio>#include<iostream>using namespace std;const int M=4120000,N=420000;int tot,cnt,n,m,root[N],nex[2*N],head[N],to[2*N],c[N],d[N],f[...原创 2018-02-24 11:16:59 · 287 阅读 · 2 评论 -
情报传递
第一问就是树上距离 第二问,两个限制T// luogu-judger-enable-o2#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int M=210000,N=1000010;int n,m,to[2*M],nex[M*2],h...原创 2018-03-11 15:48:57 · 451 阅读 · 0 评论 -
树状数组
首先我们发现如果reverse下树状数组所操作的数组的话,它写的代码是完全正确的,但是reverse之后前缀变成了后缀,所以,它写了一个正确的单点修改求后缀和的数据结构那么我们发现,对于一个通常的询问,其实是在询问(l-1,r)这两个点相同的概率,然后一个错误的思路是用线段树维护每一个点被修改的概率,但是这样做是错的,因为对于一次操作,修改且只修改一个点,如果按照线段树来做,其实是会导致一...原创 2018-03-31 17:21:49 · 117 阅读 · 0 评论 -
P4211 [LNOI2014]LCA
又一鬼题 对于每次查询 把l-r到跟的路上+1 然后深度就是这个位置的全职 然后查分一下,查询r-l 这样就可以离线记下查询位置 只添加,不用删除 就可以利用之前的信息了// luogu-judger-enable-o2#include<cstdio>#include<iostream>#include<cstring>#inclu...原创 2018-04-01 09:21:45 · 281 阅读 · 0 评论