pub struct SegtreeBidir<M: Monoid> { /* private fields */ }Expand description
非可換なモノイドを双方向から計算するセグメント木
Implementations§
Source§impl<M: Monoid> SegtreeBidir<M>
impl<M: Monoid> SegtreeBidir<M>
Sourcepub fn from_vec(monoid: M, s: Vec<M::Element>) -> Self
pub fn from_vec(monoid: M, s: Vec<M::Element>) -> Self
モノイド列からSegtreeBidirを構築する。
Time complexity $O(|s|)$
Sourcepub fn fold_left<R: RangeBounds<usize>>(&self, range: R) -> M::Element
pub fn fold_left<R: RangeBounds<usize>>(&self, range: R) -> M::Element
Time complexity $O(\log n)$
Sourcepub fn fold_right<R: RangeBounds<usize>>(&self, range: R) -> M::Element
pub fn fold_right<R: RangeBounds<usize>>(&self, range: R) -> M::Element
Time complexity $O(\log n)$
Auto Trait Implementations§
impl<M> Freeze for SegtreeBidir<M>where
M: Freeze,
impl<M> RefUnwindSafe for SegtreeBidir<M>
impl<M> Send for SegtreeBidir<M>
impl<M> Sync for SegtreeBidir<M>
impl<M> Unpin for SegtreeBidir<M>
impl<M> UnwindSafe for SegtreeBidir<M>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more