Struct cp_library_rs::graph::loop_detection_fold::Loop
source · pub struct Loop<T, V, F, G>where
F: Fn(T) -> T,
G: Fn(V, T) -> V,{
pub next: F,
pub fold: G,
pub begin: T,
pub loop_len: usize,
pub loop_begin: T,
pub loop_begin_idx: usize,
pub before_loop_sum: V,
pub loop_sum: V,
/* private fields */
}
Fields§
§next: F
ノードの移動を行う関数
fold: G
値を更新する関数
begin: T
始点となるノード
loop_len: usize
ループの長さ
loop_begin: T
ループ開始時の値
loop_begin_idx: usize
ループに到達するまでの移動回数
before_loop_sum: V
ループ開始時までの累積
loop_sum: V
ループ内での累積
Implementations§
source§impl<T, V, F, G> Loop<T, V, F, G>where
T: Copy + Hash + Eq,
V: Copy + Zero + Add<Output = V> + Sub<Output = V> + Mul<usize, Output = V>,
F: Fn(T) -> T,
G: Fn(V, T) -> V,
impl<T, V, F, G> Loop<T, V, F, G>where T: Copy + Hash + Eq, V: Copy + Zero + Add<Output = V> + Sub<Output = V> + Mul<usize, Output = V>, F: Fn(T) -> T, G: Fn(V, T) -> V,
sourcepub fn get_nth_node_usize(&self, n: usize) -> T
pub fn get_nth_node_usize(&self, n: usize) -> T
self.beginからn個後の頂点を取り出す
sourcepub fn get_nth_val_usize(&self, n: usize) -> V
pub fn get_nth_val_usize(&self, n: usize) -> V
self.beginからn個後の値を取り出す
sourcepub fn get_nth_node_biguint(&self, n: BigUint) -> T
pub fn get_nth_node_biguint(&self, n: BigUint) -> T
self.beginからn個後の値を取り出す