| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
AtCoder.Extra.Monoid.RangeSet
Contents
Description
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 4375
Since: 1.0.0.0
Constructors
| 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