class NgLib:: MSTGraph(T)

Overview

$n$ 頂点の重み付きグラフについて、最小/最大全域木を構築します。

Kruskal 法による実装です。

Defined in:

nglib/graph/mst.cr

Constructors

Class Method Summary

Instance Method Summary

Constructor Detail

def self. new (n) #

[ View source ]
def self. new (n, &cmp : T, T -> Int32) #

[ View source ]

Class Method Detail

def self. max (n) #

$n$ 頂点 $0$ 辺のグラフを生成します。

最大全域木を構築します。


[ View source ]
def self. min (n) #

$n$ 頂点 $0$ 辺のグラフを生成します。

最小全域木を構築します。


[ View source ]

Instance Method Detail

def add_edge (u : Int , v : Int , w : T) #

グラフに辺 $(u, v, w)$ を追加します。

graph = MSTGraph(Int64).new(n) { |a, b| a < b }
m.times { graph.add_edge(u, v, w) }

[ View source ]
def size : Int64 #

[ View source ]
def sum #

最小全域木を構成したときの辺の重みの総和求めます。

graph = MSTGraph(Int64).new(n) { |a, b| a < b }
m.times { graph.add_edge(u, v, w) }
graph.sum

[ View source ]