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]