NEPLg2 Standard Library - kpgraph
Web Playground
Web Playground

kpgraph: 競技プログラミング向けグラフ補助ライブラリ

目的もくてき:

実装じっそう:

注意ちゅうい:

TESTstdionormalize_newlines
#entry main
#target std
#import "std/streamio" as *
#import "std/iotarget" as *
#import "kp/kpgraph" as *
#import "alloc/collections/vec" as *
#import "core/field" as *
#import "core/mem" as *
fn main <()*> ()> ():
    let sc <StreamScanner> unwrap_ok open ReadStream::Stdio;
    let g <DenseGraph> dense_graph_read_undirected_1indexed sc;
    let n <i32> get g "n";
    let mat <i32> get g "mat";
    let dist <Vec<i32>> dense_graph_bfs_dist_raw n mat 0;

    let data <i32> mem_ptr_addr get dist "data";
    let mut w <StreamWriter> unwrap_ok open WriteStream::Stdio;
    let mut i <i32> 0;
    while lt i n:
        do:
            if lt 0 i:
                then set w write w " "
                else ()
            set w write w load_i32 add data mul i 4;
            set i add i 1;
    set w write w "\n";
    set w flush w;
    close w;
    close sc;

    dense_graph_free g

DenseGraph: 密行列表現の無向グラフ

目的もくてき:

実装じっそう:

dense_graph_new: 頂点数 n の空グラフを作る

計算量けいさんりょう:

dense_graph_free: グラフの内部メモリを解放する

計算量けいさんりょう:

dense_graph_add_undirected: 無向辺 (u,v) を追加する

注意ちゅうい:

計算量けいさんりょう:

dense_graph_read_undirected_1indexed: 1-index 入力の無向グラフを読む

[入力形式]:

注意ちゅうい:

計算量けいさんりょう:

dense_graph_bfs_dist_raw: 開始頂点からの最短距離配列を返す

目的もくてき:

実装じっそう:

注意ちゅうい:

計算量けいさんりょう: