NEPLg2 Standard Library - kpfenwick
Web Playground
Web Playground

kpfenwick: 競技プログラミング向け Fenwick Tree(BIT)

目的もくてき:

実装じっそう:

注意ちゅうい:

TESTstdionormalize_newlines
#entry main
#target std
#import "kp/kpfenwick" as *
#import "std/stdio" as *
fn main <()*> ()> ():
    let f <i32> fenwick_new 5;
    fenwick_add f 0 1;
    fenwick_add f 1 2;
    fenwick_add f 2 3;
    fenwick_add f 3 4;
    print_i32 fenwick_sum_range f 0 3;
    print " ";
    println_i32 fenwick_sum_range f 1 4;
    fenwick_free f

fenwick_new: 長さ n の Fenwick Tree を作る
fenwick_free: Fenwick Tree の内部領域を解放する
fenwick_add: idxdelta を加算する
fenwick_sum_prefix: 区間 [0, r) の和を返す
fenwick_sum_range: 区間 [l, r) の和を返す