Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Monoid action \(f: x \rightarrow a\).
Since: 1.0.0.0
Synopsis
- newtype RangeSet a = RangeSet (RangeSetRepr a)
- type RangeSetRepr a = (Bit, a)
- new :: a -> RangeSet a
- unRangeSet :: RangeSet a -> RangeSetRepr a
- act :: RangeSet a -> a -> a
RangeSet
Monoid action \(f: x \rightarrow a\).
Example
>>>
import AtCoder.Extra.Monoid (SegAct(..), RangeSet(..))
>>>
import AtCoder.LazySegTree qualified as LST
>>>
import Data.Bit (Bit (..))
>>>
import Data.Semigroup (Product(..))
>>>
seg <- LST.build @_ @(RangeSet (Product Int)) @(Product Int) $ VU.generate 4 Product -- [0, 1, 2, 3]
>>>
LST.applyIn seg 0 3 $ RangeSet (Bit True, Product 5) -- [5, 5, 5, 3]
>>>
getProduct <$> LST.prod seg 0 4
375
Since: 1.0.0.0
RangeSet (RangeSetRepr a) |
Instances
type RangeSetRepr a = (Bit, a) Source #
Constructors
unRangeSet :: RangeSet a -> RangeSetRepr a Source #
\(O(1)\) Retrieves the internal representation of RangeSet
.
Since: 1.1.0.0