Vases and Flowers

题意

Alice去一排$n$的花盆中种花,有两种操作

  • 从$a$开始种花,如果该花盆有花就跳到下一个花盆。直到没有花种或者到了$n$盆

  • $[a,b]$区间的所有花都扔掉。

询问

  • 1操作中开始种花的盆和停止种花的盆

  • 2操作中丢掉的花

题解

线段树,$sum$表示花的个数,用$lazy$来懒惰标记。

妈的,我线段树还是不够熟悉,居然使用了$update(p,n,1)$这样子的形式,以为每个区间的$rt$都是随机的,其实线段树的区间都是固定的,你只能通过$lson,rson$来寻找每一个区间,不能自己xjb改区间。

寻找p开始位置的时候,需要思考一下。image一下中点和左端与p的关系就好了。

AC代码

#include
using
#define
#define
#define
#define
#define
#define
typedef
typedef
const
//head
const
int
int
bool
int
void
sum[rt] = sum[rt
[hdoj4614]Vases and Flowers

https://www.cheasim.com/%E7%BA%BF%E6%AE%B5%E6%A0%91/2018/09/07/hdoj4614-Vases-and-Flowers.html

作者
CheaSim

发布于
2018-09-07

更新于
2018-09-07

许可协议

#[线段树](/tags/%E7%BA%BF%E6%AE%B5%E6%A0%91/)