pub struct HLD { /* private fields */ }
Expand description
重軽分解
Implementations§
Source§impl HLD
impl HLD
Sourcepub fn new<E: TreeEdgeTrait>(tree: &Tree<E>, root: usize) -> Self
pub fn new<E: TreeEdgeTrait>(tree: &Tree<E>, root: usize) -> Self
Time complexity $O(n)$
Space complexity $O(n)$
Sourcepub fn path_query_vertex(&self, x: usize, y: usize) -> Vec<(usize, usize)>
pub fn path_query_vertex(&self, x: usize, y: usize) -> Vec<(usize, usize)>
演算は可換性を仮定する。
Time complexity $O(\log n)$
Sourcepub fn path_query_edge(&self, x: usize, y: usize) -> Vec<(usize, usize)>
pub fn path_query_edge(&self, x: usize, y: usize) -> Vec<(usize, usize)>
Time complexity $O(\log n)$
Sourcepub fn subtree_query_vertex(&self, x: usize) -> (usize, usize)
pub fn subtree_query_vertex(&self, x: usize) -> (usize, usize)
Time complexity $O(1)$
Sourcepub fn subtree_query_edge(&self, x: usize) -> (usize, usize)
pub fn subtree_query_edge(&self, x: usize) -> (usize, usize)
Time complexity $O(1)$
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HLD
impl RefUnwindSafe for HLD
impl Send for HLD
impl Sync for HLD
impl Unpin for HLD
impl UnwindSafe for HLD
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