线段树
pigzhouyb
一个来自浙江的可爱的萌萌哒的肥肥胖胖的OIer
展开
-
『树的dfs序·线段树』某次模拟赛T2
Problem\mathrm{Problem}ProblemSolution\mathrm{Solution}Solution我们令disxdis_xdisx表示节点xxx的到根的距离,令stepxstep_xstepx表示节点x的深度。那么对于每一对询问(x,k),我们令终止点为y,则我们要找的是:mink≤disy−disx(stepy)\min_{k\le dis_y-dis...原创 2019-10-28 21:59:18 · 154 阅读 · 0 评论 -
『树上差分·线段树合并』「NOIP2016」天天爱跑步
Problem\mathrm{Problem}ProblemSolution\mathrm{Solution}Solution我们对于任意路线[s,t][s,t][s,t]来说,可以分为[s,Lca(s,t)][s,\mathrm{Lca}(s,t)][s,Lca(s,t)]和(Lca(s,t),t](\mathrm{Lca}(s,t),t](Lca(s,t),t]两部分。对于xxx属于...原创 2019-09-16 12:01:27 · 182 阅读 · 2 评论 -
『树上差分·线段树合并』雨天的尾巴
Problem\mathrm{Problem}ProblemN个点,形成一个树状结构。有M次发放,每次选择两个点x,y对于x到y的路径上(含x,y)每个点发一袋Z类型的物品。完成所有发放后,每个点存放最多的是哪种物品。Solution\mathrm{Solution}Solution我们可以用数组cnt[x][v]cnt[x][v]cnt[x][v]表示节点xxx中权值vvv的出现次数。...原创 2019-09-16 08:17:32 · 143 阅读 · 0 评论 -
『线段树+矩阵优化DP』CF750E New Year and Old Subsequence
Problem\mathrm{Problem}ProblemSolution\mathrm{Solution}Solution我们首先需要考虑一个O(n2)O(n^2)O(n2)的做法.在这里有一个序列自动机的思想,分别是2,0,1,8,92,0,1,8,92,0,1,8,9.我们设f[i][0/1/2/3/4/5]f[i][0/1/2/3/4/5]f[i][0/1/2/3/4/5]表示...原创 2019-09-10 19:25:00 · 241 阅读 · 1 评论 -
『动态开点线段数』「NOIP2017Day2T3」列队·毒瘤
题目描述题解观察到每一个点离队以后方阵的变化,可以发现:对于每一个离队,如果是最后一列,变化的仅仅只有最后一列。如果离队的不是最后一列,则变化的是这一行以及最后一列。因此,我们需要动态维护nnn行列为[1,m−1][1,m-1][1,m−1]的方阵队形,并且维护最后一列的方阵队形。我们所进行的操作就是,在删除节点的位置标记一个 111 ,在其余位置标记一个 000 ;那么只需要找...原创 2019-07-18 21:13:24 · 171 阅读 · 0 评论 -
『差分·线段树』Nastya Hasn't Written a Legend
题目描述题解不知道如何想到差分…反正正解很玄学…如果对于i来说需要满足赋值条件,满足条件ai+1−ai<kia_{i+1}-a_i<k_iai+1−ai<ki。如果令ci=∑j=1ikic_i=\sum_{j=1}^{i} k_ici=∑j=1iki,就有ai+1−ai<ci−ci−1a_{i+1}-a_i<c_i...原创 2019-07-11 18:30:54 · 137 阅读 · 0 评论 -
『线段数扫描线·树的DFS序』茉莉花茶
题目描述题解对于子树问题,我们可以使用树的 DFSDFSDFS 序来解决这个问题,因为树的DFS序可以十分有利的求解子树相关问题。思考这道题如何用 DFSDFSDFS 来解决。对于平面直角坐标系来说,以节点编号为横纵坐标,我们可以通过计算如下两个矩形的面积并:以 Lu−RuL_u-R_uLu−Ru 为长, Lv−RvL_v-R_vLv−Rv 为宽。以 Lv−RvL_v-R_v...原创 2019-07-14 21:56:47 · 318 阅读 · 0 评论 -
『可持久化线段树·主席树』的模板
基本模板可持久化线段树就是包含历史状态的线段树;我们需要用动态开点的方式来记录左右儿子。如果当前左右儿子不发生变化,我们就直接使用上一个历史版本的左右儿子;否则新建节点即可。#include <cmath>#include <cstdio>#include <vector>#include <cstring>#include <l...原创 2019-06-01 18:22:28 · 110 阅读 · 0 评论 -
『线段树·思维题』楼房重建
Description小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)的...原创 2019-06-12 15:22:30 · 210 阅读 · 0 评论 -
『权值动态开点线段树』『线段树合并算法』简单理解
权值线段树与动态开点在正常的线段树中,我们总是以下表来进行线段树的操作。而权值线段树主要用于对具体的权值进行构造线段树,用于权值计数,权值操作等问题。由于权值太大,我们不再采用完全二叉树的编号方式,使用类似于邻接表一样的存储方式,每一个节点只存储它儿子节点的编号;且只对有用区间进行开点操作,这样复杂度也是logloglog级别的。例如,需要添加权值为为444的点,而总区间是[1,10][1,...原创 2019-05-22 20:39:11 · 726 阅读 · 0 评论 -
『线段树扫描线算法』简单理解
Question1给定若干个矩形,线矩形的面积并。分别用O(n2)O(n^2)O(n2)级别和O(n log n)O(n\ log\ n)O(n log n)级别的算法解决。我们的做法是对矩形的纵坐标进行离散化,得到离散化后的坐标y1,y2,...,ym.y_1,y_2,...,y_m.y1,y2,...,ym.用val(y)val(y)val(y...原创 2019-05-22 19:57:23 · 412 阅读 · 0 评论 -
『线段树』「USACO月赛」Hotel
题目描述奶牛们最近的旅游计划,是到苏必利尔湖畔,享受那里的湖光山色,以及 明媚的阳光。作为整个旅游的策划者和负责人,贝茜选择在湖边的一家著名的 旅馆住宿。这个巨大的旅馆一共有N (1 <= N <= 50,000)间客房,它们在同一层 楼中顺次一字排开,在任何一个房间里,只需要拉开窗帘,就能见到波光粼粼的 湖面。贝茜一行,以及其他慕名而来的旅游者,都是一批批地来到旅馆的服务台, 希...原创 2019-05-22 19:15:33 · 274 阅读 · 0 评论