线段树
QAQQQQQQQQQQQ
菜
展开
-
树状数组 / 线段树--poj2828BuyTickets
Buy Tickets Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 22291 Accepted: 10925 DescriptionRailway tickets were difficult to buy around the Lunar New Year in China, so we...原创 2018-04-29 20:07:39 · 116 阅读 · 0 评论 -
set+线段树合并分裂--bzoj4552: [Tjoi2016&Heoi2016]排序
传送门机房最后一个学习线段树合并的人qwq题目要求支持区间升序或降序排序,并且单点查询思路是一开始对每一个点建一个权值线段树,然后排序的话就是把一段权值线段树都合并起来,这样就无所谓顺序了,然后具体操作用setsetset什么的维护一下线段树的左右端点就好了重要的就是线段树合并和分裂了,合并的话就是真正意义上的合并(好像有时候不是直接合并?)把对应的sizsizsiz加起来,分裂根据本题目...原创 2018-12-24 20:57:32 · 259 阅读 · 0 评论 -
树剖+线段树--bzoj3626
传送门也是一道思路很好的题。对于一个点zzz,和一个标号区间[l,r][l,r][l,r],要求∑i=lrdep[LCA(i,z)]\sum_{i=l}^rdep[LCA(i,z)]∑i=lrdep[LCA(i,z)]如果纯暴力的话是n2n^2n2的,甚至连第一个部分分都拿不到但是LCA(i,z)LCA(i,z)LCA(i,z)一定是zzz到rootrootroot的链上的某一个点,如果...原创 2018-11-28 14:35:53 · 252 阅读 · 0 评论 -
线段树--SP2916 GSS5 - Can you answer these queries V
传送门以前讲过的题,会最大子段和然后分类讨论一下就好了#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define N 10005#define ls cur<<1#define rs ...原创 2018-11-28 11:03:54 · 186 阅读 · 0 评论 -
LCT+树剖+线段树--bzoj4817: [Sdoi2017]树点涂色
传送门和bzoj3379有异曲同工之妙也是用树剖+线段树的思想维护dfsdfsdfs序,然后查询区间最大值1操作就是lctlctlct的accessaccessaccess,同bzoj33792操作就是f(x)+f(y)−2×f(lca(x,y))f(x)+f(y)-2\times f(lca(x,y))f(x)+f(y)−2×f(lca(x,y)),也可以用树剖+线段树3操作就是线段树...原创 2018-11-29 11:45:00 · 151 阅读 · 0 评论 -
树剖+线段树+dfs序+LCA--bzoj3083 遥远的国度
传送门一道树剖线段树维护dfsdfsdfs序的好题,首先换根的时候考虑一个点的子树的变化,分类讨论:设当前根为rootrootroot,询问点为xxx1.x在root的子树中,x的子树不变1.x在root的子树中,x的子树不变1.x在root的子树中,x的子树不变2.x不在root到原根的路径上,x的子树不变2.x不在root到原根的路径上,x的子树不变2.x不在root到原根的路径上,x...原创 2018-11-23 14:49:09 · 191 阅读 · 0 评论 -
线段树--luoguP4560 [IOI2014]Wall 砖墙
传送门很巧啊只需要维护上界和下界就好了一开始以为要维护四个,其实只用维护两个就好了,如果到了l=rl=rl=r的时候修改一下序列上的值就行。#include<iostream>#include<cstdio>#include<cstring>#define N 2000005#define ls cur<<1#define rs cu...原创 2018-11-25 19:39:36 · 130 阅读 · 0 评论 -
LCT+树剖+线段树+dfs序--bzoj3779: 重组病毒
传送门一道数据结构综合神题(敲的我手都要断了首先看三个操作,每次一个新病毒会感染一条链,而每个点用的时间就是到根的链上不同病毒的数量和,查询的时候相当于查整个子树的时间和。很重要的一个思想是,当一个新病毒感染时,就像LCTLCTLCT里的accessaccessaccess一样,当一条虚边变成实边,说明它遇到了一个不一样的病毒,就要对它祖宗的另外一些子树sum+1sum+1sum+1,这个的...原创 2018-11-23 16:55:25 · 216 阅读 · 0 评论 -
树链剖分+线段树--bzoj2836: 魔法树
树剖裸题···然而太久没写树剖的我zzzzzz到修改用updateupdateupdate直接改简直是mdzzmdzzmdzz#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define N 1000...原创 2018-10-16 18:43:58 · 136 阅读 · 0 评论 -
树链剖分+动态开点线段树--luoguP3313 [SDOI2014]旅行
传送门solution:树链剖分,但是每个颜色要建一颗线段树空间不够所以要动态开点调了好久···#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#include<cctype>...原创 2018-09-12 23:55:46 · 170 阅读 · 0 评论 -
线段树--SPOJ GSS 4
「题意」: nnn 个数,每个数在 101810^{18}1018 范围内。现在有「两种」操作0 x y把区间 [x,y] 内的每个数开方1 x y询问区间 [x,y] 的每个数的和啊其实就是注意到 即使是10^18开根号7次也变成1了 变成1以后再怎么开还是1,所以就可以不管了 就是这里的一个优化就可以过了#include<iostream>#includ...原创 2018-07-12 21:04:30 · 134 阅读 · 0 评论 -
线段树--SPOJ GSS 2
与GSS1不同,2需要支持单点修改 但和1没有本质差别 单点修改也是非常好改的#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define ls cur<<1#define rs ...原创 2018-07-12 00:11:04 · 166 阅读 · 0 评论 -
线段树--SPOJ GSS1
用线段树维护四个值:mx,mxl,mxr,sum,分别表示一个区间的最大和、左起最大和、右起最大和与整段和。连续数的最大和有三种情况:都在左半边,都在右半边,横跨左右两边。#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cm...原创 2018-07-11 22:53:26 · 173 阅读 · 0 评论 -
线段树打标记--bzoj3064CPU监控
DescriptionBob需要一个程序来监视CPU使用率。这是一个很繁琐的过程,为了让问题更加简单,Bob会慢慢列出今天会在用计算机时做什么事。 Bob会干很多事,除了跑暴力程序看视频之外,还会做出去玩玩和用鼠标乱点之类的事,甚至会一脚踢掉电源……这些事有的会让做这件事的这段时间内CPU使用率增加或减少一个值;有的事还会直接让CPU使用率变为一个值。 当然Bob会询问:在之前给出的事...原创 2018-05-29 23:19:42 · 189 阅读 · 0 评论