
线段树
文章平均质量分 70
线段树
_7许
%
展开
-
HDU 6406 Taotao Picks Apples
线段树查询区间第一个大于val的值的id原创 2021-05-10 17:05:13 · 206 阅读 · 0 评论 -
CF - 19D【线段树】
D. Points题意:在笛卡尔坐标系上有 n 个操作,添加点 (x, y),删除点 (x, y) 和查询点 (x, y) 的最近的右上角的点 (x1, y1) 【在保证(x1 - x)最小的基础上寻找(y1-y)最小】思路1:横纵坐标的范围很大,所以我们对横纵坐标离散化,然后对离散后的横坐标用线段树维护,线段树维护横坐标 x 对应竖直线上点的个数。我们用 set 存储横坐标 x 对应竖直线上点的集合。点的添加和删除操作直接跑到叶子节点对 set 进行insert或者erase即可。查询点 (x,原创 2020-09-26 10:23:15 · 329 阅读 · 0 评论 -
【线段树_区间合并_异或翻转】HDU 3911 Black And White
【线段树_区间合并_异或翻转】qwq.原创 2020-01-17 10:36:49 · 280 阅读 · 0 评论 -
【DFS序_线段树_思维】CF343D. Water Tree
Codeforces Round #200 (Div. 1)D. Water Tree题意:对一棵树有三种操作:将以x为根的子树全部置1 将x置0,并将其祖先结点都置0 查询以x为根的子树上是不是所有结点都为1思路:首先得到树的dfs序,对dfs序建线段树 置0操作:将以x为根的这个子树对应的的所有线段树区间都置0。单点更新:将in[x]叶子结点置0,那么pushup上去...原创 2020-01-16 20:29:32 · 243 阅读 · 2 评论 -
【线段树_离散化_染色问题】POJ 2528 Mayor's posters
POJ 2528 Mayor's posters题意: 在一个长度为1e7的墙上贴海报。n(<=1e4)张海报贴上去,海报可能会出现覆盖,问:贴完所有的海报之后能看见多少张(能看见一部分也算)海报。给出的海报信息是从第一张到最后一张(也就是贴的顺序)。 思路: 线段树染色问题。 区间数据范围过大,离散化。【注意因为是区间,所以离散化的时候要注意两个数据是不是...原创 2020-01-13 20:00:06 · 295 阅读 · 0 评论 -
【线段树_染色问题】POJ 2777 Count Color
POJ 2777 Count Color题意:对区间[1, L]有两种操作:(1)C A B C染区间[A, B]为颜色C. (2)P A B输出区间[A, B]有多少颜色。初始的时候整个区间都是颜色1. 一共有T种颜色,并且T <= 30.思路: tree[ ] == 0:该区间没有颜色(在这个题中其实不存在) tree[ ] == x(x 是某个整数):该区间只...原创 2020-01-13 19:04:56 · 270 阅读 · 0 评论 -
【线段树||set遍历】Codeforces Round #207 (Div. 1) A. Knight Tournament
Codeforces Round #207 (Div. 1) A. Knight Tournament题意: n个骑士(编号1-n),有m场battle,保证每一场battle的人数>=2。给出m场battle的信息:每一场battle的信息是:给出一个区间[l, r],再给出一个该场battle的胜利者编号won,意思就是说[l, r]中还没有被打败的骑士都会在这一场被won打...原创 2020-01-12 15:16:19 · 252 阅读 · 0 评论 -
【线段树_DFS序】POJ 3321 Apple Tree
POJ 3321 Apple Tree题意:给出一个N个结点的无根树。但是要将1看作根,也相当于是一个有根树。最初每个结点都有一个苹果。有两种操作,Q x: 以x为根的子树上有多少个苹果;C x: 改变结点x的状态,也就是原来有苹果就摘了,原来没苹果那就长出来一个。思路:首先我们先将这N个结点跑它的先序遍历(我用的是链式前向星存边,所以实际上是根-右儿子-左儿子的遍历顺序),得到它的DF...原创 2020-01-09 20:43:30 · 167 阅读 · 0 评论 -
【离散化+线段树】POJ 2528 Mayor's posters
POJ 2528 Mayor’s posters题意:在一个长度为1e7的墙上贴海报。n(<=1e4)张海报贴上去,海报可能会出现覆盖,贴完所有的海报之后能看见多少张(能看见一部分也算)海报。给出的海报信息是从第一张到最后一张(也就是贴的顺序)。思路:首先海报的位置可以是1-1e7间的任意位置,所以我们需要离散化一下。关于离散化: 1. 左右位置2n个数去重排序后,如果前后两...原创 2019-12-27 20:02:11 · 181 阅读 · 0 评论 -
【线段树】Codeforces Round #590 (Div. 3) D. Distinct Characters Queries
Codeforces Round #590 (Div. 3) D. Distinct Characters Queries题意:有一个字符串,对这个字符串有两种操作1:修改某个位置的字符为其他字符2:查询 [ l, r ] 的不同字符的数目思路:一共有26个字符,所以我们用26位的二进制来表示字符的存在情况:a ((1 >> 0) & 1), b(1 >...原创 2019-10-31 12:34:15 · 139 阅读 · 0 评论 -
【线段树-单点更新 区间查询 ^ 是大哥】老瞎眼 pk 小鲜肉(牛客)
题目:老瞎眼有一个长度为 n 的数组 a,为了为难小鲜肉,他准备了 Q 次询问,每次给出 一个区间[L,R],他让小鲜肉寻 找一对 l,r 使L<=l<=r<=R 且 a[l]a[l+1]a[l+2]…^a[r]=0,老瞎眼只让他回答r-l+1 最小是多少,若没有符合条件的 l,r 输出”-1”。输入描述:第一行输入 n,Q。第二行输入 n 个数,表示 a 数组。接下来...原创 2019-10-12 16:53:28 · 145 阅读 · 0 评论 -
【线段树】洛谷 P2023 [AHOI2009]维护序列
洛谷 P2023 [AHOI2009]维护序列#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <cmath>#include <cstring>#include <string>#inc...原创 2019-07-25 19:34:56 · 188 阅读 · 7 评论 -
【线段树】HDU 1754 I Hate It
HDU 1754 I Hate It单点修改,区间查询线段树模板题#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <cmath>#include <cstring>#include <s...原创 2019-07-23 16:44:30 · 133 阅读 · 5 评论 -
【线段树】POJ 3468 A Simple Problem with Integers
POJ 3468 A Simple Problem with Integers题意:区间修改,区间查询思路:模板题#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <cmath>#include <cs...原创 2019-07-23 16:11:24 · 126 阅读 · 0 评论 -
【线段树】HDU 1166 敌兵布阵
HDU 1166 敌兵布阵#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <cmath>#include <cstring>#include <string>#include <v...原创 2019-07-22 20:19:02 · 125 阅读 · 2 评论 -
【线段树】HDU 1698 Just a Hook
线段树建树(pushup向上求和或者其他操作),是一个递归过程。tree[ ]要开4倍数组。为什么呢?其实2^x<=N<2^(x+1)个叶子,我们会有一个等比数列,N+N/2+N/3+...=(2^(x+1)-1)=2*2^x-1<=2*N-1<2*N,也就是最多有2N个结点,但是为什么开4倍数组?虽然我们只有2N个叶子,但是我们不能确定它们的标号是前2N个。而且我们...原创 2019-07-22 20:06:00 · 147 阅读 · 0 评论