线段树
我不是手机
这个作者很懒,什么都没留下…
展开
-
Picture POJ - 1177 扫描线计算周长+两次扫描
A number of rectangular posters, photographs and other pictures of the same shape are pasted on a wall. Their sides are all vertical or horizontal. Each rectangle can be partially or totally covered by the others. The length of the boundary of the union of原创 2020-11-23 10:55:32 · 151 阅读 · 0 评论 -
Atlantis HDU - 1542 线段树+扫描线 板子
There are several ancient Greek texts that contain descriptions of the fabled island Atlantis. Some of these texts even include maps of parts of the island. But unfortunately, these maps describe different regions of Atlantis. Your friend Bill has to know原创 2020-11-23 10:52:05 · 99 阅读 · 0 评论 -
Vases and Flowers HDU - 4614 线段树二分区域+区间更新
情人节到了!众所周知,黄队喜欢花花,所以他当然有很多的花瓶,据不完全统计,黄队有N个花瓶(标号为0~ N-1)。当然他也是个魅力四射的男孩子,所以他也自然会在这条收到很多的花花,当他在情人节这天收到花花时时,他会随机的选择一个瓶子A,从它开始遍历A,A+1, A+2, …, N-1号瓶子,遇到空瓶子的话就放一朵花进去,直到花放完或没有瓶子,剩下的花将被残忍的丢弃。有时,他也会清理标号从a到b的花瓶(a <= b).花瓶里的花会被丢弃。任性又帅气的黄队!Input第一行你会得到一个整数T,表示有T组原创 2020-11-13 19:11:05 · 84 阅读 · 0 评论 -
Transformation HDU - 4578线段树综合操作
这天,狄大人是有名的名侦探,他也很会判案,他常常会问元芳:”元芳,你怎么看?“:现在有n个犯人等待被审判,每个犯人都有一个罪恶值, a1, a2, …, an. 这些犯人的罪恶之最开始都是0, 但是经过狄大人的审判,n个犯人的罪恶值会有不同程度的改变,偷偷告诉你,因为狄大人断案能力很强,所以他每一次判案都是直接审批一个连续区间[l,r]的犯人哦。狄大人有三个审判方式。第一种审判 1: 这种审判的犯人一般是一些小案件的犯人,狄大人会让受审判的犯人的罪恶值增加c。第二种审判 2: 这种犯人一般都是一些 大原创 2020-11-13 16:26:28 · 252 阅读 · 0 评论 -
Assign the task HDU - 3974 线段树染色问题+dfs序
现有一棵树,有以下操作:节点x及其所有子孙颜色都变更为k。要求你回答节点x的颜色。初始所有点都没有染色。Input第一行一个整数T(T <= 10),表示样例组数。对于每个测试样例:第一行一个整数n(n <= 5e4),表示树的节点个数。接下来n行,每行两个整数u, v(1 <= u, v <= n),表示树中u的父节点是v。接下来一行一个整数q(q <= 5e4),表示询问数。接下来q行:若为染色操作则输入“T x k”,若为查询操作则输入“C x”,原创 2020-11-13 15:31:47 · 69 阅读 · 0 评论 -
P3373 【模板】线段树 2 区间更新乘法+区间求和
题目描述如题,已知一个数列,你需要进行下面三种操作:将某区间每一个数乘上 xx将某区间每一个数加上 xx求出某区间每一个数的和输入格式第一行包含三个整数 n,m,pn,m,p,分别表示该数列数字的个数、操作的总个数和模数。第二行包含 nn 个用空格分隔的整数,其中第 ii 个数字表示数列第 ii 项的初始值。接下来 mm 行每行包含若干个整数,表示一个操作,具体如下:操作 11: 格式:1 x y k 含义:将区间 [x,y][x,y] 内每个数乘上 kk操作 22: 格式:2 x y原创 2020-11-13 14:27:56 · 113 阅读 · 0 评论 -
P3372 【模板】线段树 1线段树区间更新加法+区间求和
题目描述如题,已知一个数列,你需要进行下面两种操作:将某区间每一个数加上 kk。求出某区间每一个数的和。输入格式第一行包含两个整数 n, mn,m,分别表示该数列数字的个数和操作的总个数。第二行包含 nn 个用空格分隔的整数,其中第 ii 个数字表示数列第 ii 项的初始值。接下来 mm 行每行包含 33 或 44 个整数,表示一个操作,具体如下:1 x y k:将区间 [x, y][x,y] 内每个数加上 kk。2 x y:输出区间 [x, y][x,y] 内每个数的和。输出格式输出原创 2020-11-13 14:25:23 · 110 阅读 · 0 评论 -
Tunnel Warfare HDU - 1540 线段树维护区间长度
在抗日战争期间,华北平原广大地区进行了大规模的隧道战。 一般来说,通过隧道连接的村庄排成一列。 除了两端,每个村庄都与两个相邻的村庄直接相连。入侵者经常对一些村庄发动袭击并摧毁其中的部分隧道。 八路军指挥官要求最新的隧道和村庄连接状态。 如果某些村庄严重隔离,必须立即恢复连接!Input输入的第一行包含两个正整数n和m(n,m≤50,000),表示村庄和事件的数量。 接下来的m行中的每一行描述一个事件。以下所示的不同格式描述了三种不同的事件:D x:第x个村庄被毁。Q x:指挥官询问第x个村庄与原创 2020-11-12 18:57:23 · 75 阅读 · 0 评论 -
Can you answer these queries? HDU - 4027 线段树区间开方修改(优化)+求和
题目是对一个区间内的所有数进行开平方,然后计算该区间内的和。WA点:这道题普通更新求和去做会T(QAQ),因为你对一个数重复进行开方运算一直会使这个数字趋近于1,当它变成1时无论做什么操作都可以直接跳出了,大大减少了时间复杂度。#include <stdio.h>#include <string.h>#include <math.h>#include <map>#include <stack>#include <set>..原创 2020-11-11 16:12:11 · 105 阅读 · 0 评论 -
Balanced Lineup POJ - 3264 线段树区间查询最大值,最小值
一片绿地的N(1≤N≤50000)颗树排成一排,在一个美好的下午,园艺师傅接到任务对这N棵树修剪,园艺师傅已经知道这N颗树的高度H(1≤H≤1000000)。园艺师傅街道的任务有Q(1≤Q≤200000)个小任务,对于每一个小任务,园艺师傅都要知道特定区间最高的树和最矮的树的高度差。园艺师傅不会算法,这个任务对他有些难,你能帮助他吗?Input第一行为N(1≤N≤50000)和Q(1≤Q≤200000);.从第2行到第N+1行,每行一个数字, 表示第i棵树的高度(1≤height≤1000000);原创 2020-11-11 15:08:52 · 131 阅读 · 0 评论 -
Just a Hook HDU - 1698 区间修改+区间求和
In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of the heroes. The hook is made up of several consecutive metallic sticks which are of the same length.Now Pudge wants to do some operations on the hook.Let us number the原创 2020-11-11 14:58:07 · 128 阅读 · 0 评论 -
Mayor‘s posters POJ - 2528 结构体存树+离散化
n(n<=10000) 个人依次贴海报,给出每张海报所贴的范围li,ri(1<=li<=ri<=10000000) 。求出最后还能看见多少张海报。Input第一行: 样例个数T第二行: 贴海报的人n第三行: 每个人贴海报的范围接下来n行: 每个人贴海报的范围Output对于每一个输入,输出最后可以看到的海报张数。下面这个图是样例解释Sample Input151 42 68 103 47 10Sample Output4坑点:对数据进行离散化,由原创 2020-11-11 14:21:46 · 62 阅读 · 0 评论 -
A Simple Problem with Integers POJ - 3468 线段树区间求和+区间修改(板子题)
队长给出了一个序列,想让你帮队长干活,你需要处理如下两种情况。"C a b c"表示给[a, b]区间中的值全部增加c (-10000 ≤ c ≤ 10000)。“Q a b” 询问[a, b]区间中所有值的和。Input第一行包含两个整数N, Q。1 ≤ N,Q ≤ 100000.第二行包含n个整数,表示初始的序列A (-1000000000 ≤ Ai ≤ 1000000000)。接下来Q行询问,格式如题目描述。Output对于每一个Q开头的询问,你需要输出相应的答案,每个答案一行。Sa原创 2020-11-11 14:07:45 · 106 阅读 · 0 评论 -
I Hate It HDU - 1754 线段树区间查询最大值+单点修改
很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。Input本题目包含多组测试,请处理到文件结束。在每个测试的第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<5000 ),分别代表学生的数目和操作的数目。学生ID编号分别从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,原创 2020-11-11 14:04:57 · 79 阅读 · 0 评论 -
敌兵布阵 HDU - 1166 线段树区间查询+单点修改
C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向Derek汇报某一段连续的工兵营地一共有多少人,例如Derek问:“Tidy,马上汇报第3个营地原创 2020-11-11 13:58:01 · 92 阅读 · 0 评论