HDOJ 4614 Vases and Flowers

Posted greenty1208

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDOJ 4614 Vases and Flowers相关的知识,希望对你有一定的参考价值。

题意

下标0到n-1,初始全为0
两种操作:
1 a f 从位置a开始往后,每遇到0就将它变为1,直到改变了f个或者到末尾,输出改变的第一个值和最后一个值的下标
2 x y 把[x,y]所有的值置为0,并输出总共改变了多少个值

分析

线段树维护当前区间还有多少空位tree[o]
lazy标记当前区间全被置空(0)或置满(1),或无标记(-1)
操作1:
1. 先判断从a位置到末尾总共有多少个空位k
    区间查询和
2.输出左值l = 第一个空位下标,输出右值r = 第min(f,k) 个空位下标、
3.将[ l,r] 区间全部置为1即tree[o] = 0
操作2:
    直接将所给区间全部置为0即tree[o] = 区间长度(常规操作!)
    返回值为改变的tree[o]
pushdown:
    如果标记存在
    如果标记为1:将tree左右区间全部赋值为0,表示全满
    如果标记为0:将tree左右区间全部赋值为区间长度,表示全空
    清空当前区间的标记:lazy[o] = -1;


以上是关于HDOJ 4614 Vases and Flowers的主要内容,如果未能解决你的问题,请参考以下文章

HDU-4614Vases and Flowers(线段树双查询)

hdu 4614 Vases and Flowers

HDU 4614 Vases and Flowers 线段树+二分

Vases and Flowers HDU - 4614

HDU4614Vases and Flowers 二分+线段树;

HDU-4614 Vases and Flowers (线段树区间更新)