高级数据结构——线段树
juruo_xlh
OIer
展开
-
线段树学习总结
线段树是一种非常重要的数据结构,主要用来处理区间问题。线段树是的功能是把一个区间划分成许多个小区间,每个长度大于1的区间被从中间分成两段,分别对应该节点的左子树和右子树,如图:所以可以看出,假设一个节点对应的区间为 [l,r], 记mid=(l+r)/2,则其左子树对应区间为 [l,mid],右子树对应区间为[mid+1,r]。...原创 2018-06-06 10:01:54 · 151 阅读 · 0 评论 -
【BZOJ1878】SDOI2009 HH的项链
题目描述HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答……因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。输入输出格式输入格式:第一行:一个整数N,表示项链...原创 2018-06-06 20:35:49 · 298 阅读 · 0 评论 -
BZOJ3211 花神游历各国
Description InputOutput每次x=1时,每行一个整数,表示这次旅行的开心度 题意就是区间开方和区间询问。显然我们要用一个数据结构来维护(废话)。我们维护一棵线段树,对于每次区间开方,我们暴力对每个叶子结点进行开方,然后我们获得了TLE的好成绩。考虑优化,因为开方是向下取整,所以只要当前区间的最大数小于等于1就不用再开方了,...原创 2018-09-12 19:34:58 · 266 阅读 · 0 评论 -
BZOJ1230 [Usaco2008 Nov]lites 开关灯
DescriptionFarmer John尝试通过和奶牛们玩益智玩具来保持他的奶牛们思维敏捷. 其中一个大型玩具是牛栏中的灯. N (2 <= N <= 100,000) 头奶牛中的每一头被连续的编号为1..N, 站在一个彩色的灯下面.刚到傍晚的时候, 所有的灯都是关闭的. 奶牛们通过N个按钮来控制灯的开关; 按第i个按钮可以改变第i个灯的状态.奶牛们执行M (1 <= M...原创 2018-09-13 16:24:22 · 320 阅读 · 0 评论