
线段树
线段树模版+练习题
爱吃猫的鱼
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Assign the task(dfs序+线段树)
HDOJ 3974题意:有一家公司有N个员工(从1到N),公司里每个员工都有一个直接的老板(除了整个公司的领导)。如果你是某人的直接老板,那个人就是你的下属,他的所有下属也都是你的下属。如果你是没有人的老板,那么你就没有下属,没有直接老板的员工就是整个公司的领导,也就是说N个员工构成了一棵树。公司通常把一些任务分配给一些员工来完成,当一项任务分配给某个人时,他/她会把它分配给他/她的所有下属,换...原创 2020-03-11 16:39:07 · 674 阅读 · 0 评论 -
Tunnel Warfare(最大连续子段和)
HDOJ 1540题意:输入n,m表示n个村庄和m次操作。后面m行,有3种操作:D x:第x个村庄被毁。Q x:指挥官询问第x个村庄与其直接或间接相关的村庄数量。R:最后毁坏的村庄被重建了。方法一分析:本来是线段树练习题,但是我第一眼看真的是STL裸题,用set就能解决。#include <iostream>#include <cmath>#incl...原创 2020-03-10 20:14:05 · 295 阅读 · 0 评论 -
Balanced Lineup(区间最值差)
POJ 3264题意:给定序列,求区间 [x,y] 最大值和最小值的差标签:区间最值分析:线段树维护区间最大最小值,分开查询。还是老问题,POJ流同步关了还是T#include <iostream>#include <cmath>#include <iomanip>#include <cstring>#include <vec...原创 2020-03-09 20:37:47 · 569 阅读 · 0 评论 -
Just a Hook(区间修改)
HDU 1689题意:给定序列,默认值为1。m次操作,每次操作把区间 [x,y] 的值改为 z,求操作完序列的和。标签:区间修改分析: 模板题,但是注意多组输入数据,每次要重置 lazy tag#include <iostream>#include <cmath>#include <iomanip>#include <cstring>...原创 2020-03-08 21:52:08 · 426 阅读 · 0 评论 -
I Hate It(区间最大值)
HDU 1754题意:给定序列,2种操作:‘Q’ 查询[x,y] 中最大值‘U’ 将ID为x的成绩更改为y标签:区间最大值分析:维护区间最大值即可,模板题#include <iostream>#include <cmath>#include <iomanip>#include <cstring>#inc...原创 2020-03-08 21:39:44 · 187 阅读 · 0 评论 -
敌兵布阵(单点修改)
HDU 1166题意:给定序列,4个操作:Add i j,i和j为正整数,表示第i个营地增加j个人(j不超过30)Sub i j ,i和j为正整数,表示第i个营地减少j个人(j不超过30)Query i j ,i和j为正整数,i<=j,表示询问第i到第j个营地的总人数End 表示结束,这条命令在每组数据最后出现标签:单点修改分析:裸的模板题#include <ios...原创 2020-03-08 21:23:40 · 154 阅读 · 0 评论 -
线段树模板
建树void build(ll s, ll t, ll p) { //对[s,t]区间建树,当前根编号p if (s==t) { d[p]=a[s]; return; } ll m=(s+t)>>1; build(s,m,p<<1),build(m+1,t,(p<<1)|1); //递归左右区间建树 d[p]=d[p<<1]+d[...原创 2019-08-06 14:38:05 · 166 阅读 · 0 评论 -
Can you answer these queries?(区间单点修改)
Can you answer these queries?HDU 4027题意:给定一段序列,有两种操作0 x y,将[x, y]区间的数都求根号(向下取整)1 x y,查询[x,,y]区间的和。标签:区间单点修改分析:一个数字取多次根号会变成1,所以维护区间最大值,如果当前点等于1则无需操作。注意输入x可能大于y,输出需空行#include <iostream>...原创 2020-03-08 21:13:20 · 151 阅读 · 0 评论