线段树
线段树
多行不译必自闭
人生如逆旅,我亦是行人
展开
-
扫描线 体积交 -- Get The Treasury HDU - 3642
Get The Treasury HDU - 3642题意:求相交三次及以上的立方体体积。思路:由于z 最多只有1000层, 故我们可以直接对每一层求一次面积并。 但是求层数的时候有一个特别要注意的地方, 比如z包含 3 4 5这3层,算的时候我们求的是3层,实际上我们求体积只用求2层即可。故判断一下就行。这样若果只有一层 的话就不会算进去,因为一层构不成体积。 其他的就和基本的扫描线类似...转载 2020-03-23 16:10:02 · 120 阅读 · 0 评论 -
线段树最大连续区间 -- Tunnel Warfare HDU - 1540
题意:n个点,m个操作(1<=n,m<=5e4),m行中每行一个字符c表示操作类型,一个整型数x表示第x个点D x 表示去掉第x点,Q x表示需输出含 x 的最大连续区间的长度,R x表示还原最后去掉的点思路:第一种思路:利用线段树求解, 线段树维护一个最长连续子段和,然后查询的时候判断x点是在左边区间还是右边区间,如果在左边区间就判断左边区间的rmax(包含右断点的最大连续子...原创 2020-03-21 19:27:16 · 177 阅读 · 0 评论 -
扫描线模板
转自洛谷dalao NCC79601扫描线:扫描线:假设有一条扫描线从一个图形的下方扫向上方(或者左方扫到右方),那么通过分析扫描线被图形截得的线段就能获得所要的结果。该过程可以用线段树进行加速。面积并:P5490 【模板】扫描线由于都是矩形,因此运用扫描线以后,面积的求法其实可以简化为 \sum∑截线段长度\times×扫过的高度。这也是扫描线算法最基础的应用。考虑以下这个简单的例子...转载 2020-02-26 10:35:18 · 517 阅读 · 0 评论 -
线段树lazy更新 -- Transformation HDU - 4578
Transformation HDU - 4578 大牛的题解,我先咕咕着转载 2020-02-24 20:16:55 · 106 阅读 · 0 评论 -
dfs序 + 线段树 -- Tunnel Warfare HDU - 1540
Tunnel Warfare HDU - 1540题意:公司有n个员工,其上下级关系形成一个树形结构,每颗树的根是上司,给你两种操作,一种是给一个员工分配工作任务,他会将任务分配给他的下属;另一种操作就是询问某个员工此时的工作任务。思路:用dfs序将树形结构转化为线性结构,题给的操作就转化为单点查询和区间修改。 每次直接查询x的任务即可,编号为in[x]。in[i]代表每个节点在线段树中...原创 2020-02-24 11:23:26 · 107 阅读 · 0 评论 -
dfs序模板题
dfs序的作用就是将树形结构转化成线性结构,便于区间操作思路:用dfs序将树形结构转换为线性结构,然后用线段树或树状数据进行维护。当用dfs遍历这棵树的时候,进入到这个点是有一个进入时间in,递归完成后有一个退出时间out,所以这个点和它子树所在的区间就是【in[u], out[u]】(u就是这个点)。#include<iostream>#include<stdi...原创 2020-02-24 10:52:43 · 353 阅读 · 1 评论 -
线段树区间更新 + 离散化 -- Mayor's posters POJ - 2528
Mayor’s posters POJ - 2528题意:n(n<=10000) 个人依次贴海报,给出每张海报所贴的范围li 、ri(1<=li<=ri<=10000000)。求出最后还能看见多少张海报。思路:线段树区间更新题,可以用懒人更新的思路优化,对于线段树来说10000000显然太大,数组开不了,而n只有10000,就可以离散化一下。但是离散化对本题来说有...原创 2020-02-22 14:54:42 · 152 阅读 · 0 评论 -
线段树懒人标记 + 区间更新 -- A Simple Problem with Integers POJ - 3468
A Simple Problem with Integers POJ - 3468思路: 区间更新、查询模板题,用懒人标记优化效率。code:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<vector>type...原创 2020-02-21 22:00:35 · 118 阅读 · 0 评论 -
筱马爱线段树(差分、线段树)
链接:https://ac.nowcoder.com/acm/contest/946/D来源:牛客网筱马爱线段树(差分、线段树筱玛是一个热爱线段树的好筱玛。筱玛的爷爷马爷在游戏中被筱玛吊打了,于是他恼羞成怒,决定给筱玛出这样一道数据结构题:给定一个长度为n的数组A,刚开始每一项的值均为0。支持以下两种操作,操作共m次:1 l r:Al∼Ar的每一项的值加上1。2 l r:执行操作编...原创 2019-07-08 10:55:48 · 127 阅读 · 0 评论 -
简单动态开点 - E.Grid
E.Grid:https://ac.nowcoder.com/acm/contest/1108/E#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;const int maxn=1e6;int sum[maxn],ls[maxn],rs[maxn];int s...原创 2019-12-14 11:19:01 · 146 阅读 · 0 评论 -
权值线段树找第k大
2019暑期集训第二次校赛-B.简易版第k大链接:https://ac.nowcoder.com/acm/contest/1076/B来源:牛客网题目描述有一个长度为n的序列,序列每个元素取值范围[1, 1e6],现在有q次操作,每次操作:1 k:查询整个序列第 k 大元素(指的是从小到大排序后第 k 个元素)2 x y:将下标为x(下标从1开始)的元素值修改为y输入描述:第一行输...原创 2019-08-19 22:16:13 · 1162 阅读 · 2 评论