线段树
Mima_Reincarnation
这个作者很懒,什么都没留下…
展开
-
BZOJ2157 旅游
DescriptionRay 乐忠于旅游,这次他来到了T 城。T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接。为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间有且只有一条路径。换句话说, T 城中只有N − 1 座桥。Ray 发现,有些桥上可以看到美丽的景色,让人心情愉悦,但有些桥狭窄泥泞,令人烦躁。于是,他给每座桥定义一个愉悦度w,也就是说,Ray 经过这座原创 2016-08-08 16:26:28 · 426 阅读 · 0 评论 -
BZOJ3531 旅行 树链剖分
题目大意:给定一棵树,点染色,修改点权,链上询问点权和或者最大值 主要思想是对每种颜色开一颗线段树,动态分配内存,染色时删除原来的点,加入到新线段树中即可。 需要注意的是不仅插入要更新信息,删除也要更新信息。 自己的代码:#include<cstdio> #include<cstring> #define safe(x,a) (x?x->a:0) #define gm 100001 using原创 2016-12-26 21:14:18 · 423 阅读 · 0 评论 -
BZOJ4373: 算术天才⑨与等差数列 线段树
题意:一个序列,两种操作:1.单点修改 2.查询[l,r]内的数由小到大排序后能否形成公差k的等差数列 1<=n,m<=300000,0<=a[i]<=10^9,强制在线 正解是这么说的。。。若能形成公差为k的等差数列则:1.最大值=最小值+(r-l)*k ,2.相邻两数之差都为k的倍数 ,3.没有重复元素 第一个好维护,第二个差分后维护,由于公共gcd从下到上是单调不增的所以均摊log,关原创 2017-01-04 21:10:09 · 519 阅读 · 0 评论 -
BZOJ1513: [POI2006]Tet-Tetris 3D 二维线段树
题意:有一个坐标系,每次将一个矩形内所有点的值改为这个矩形内最大值+一个数,求最后所有点的最大值 N<= 20000,坐标<= 1000 首先二维线段树由于不能下推上传标记所以只能解决资磁标记永久化的问题 然后观察这个问题,由于值只能改大不能改小,所以一个后来的标记肯定不会使之前的标记非法,那么就是可以标记永久化的,对于每个点记录自身的标记与子树中标记的最大值,对于一个节点,有贡献的标记原创 2017-04-27 20:14:22 · 630 阅读 · 0 评论