2次元リストの回転
説明
2次元のリストを行列とみたときの時計回り90°回転、反時計回り90°回転、180°回転する方法
元の行列A = [[1, 2, 3], [4, 5, 6]]時計回り90°回転B = list(map( ...クラスカル法
問題
頂点数が $\small N$、辺の数が $\small M$ のグラフでそれぞれの辺の重みが $\small W $ であるとき、最小全域木を求める。
アルゴリズムグラフ $ G = (V, E) $ の辺 $ e_i $ ...最長増加部分列(LIS)
最長増加部分列とは
数列 {$ \small A_i$} が与えられたとき、並び順は変えずに {$ \small A_i $} の中からいくつかの要素を選んで作った数列を数列 {$ \small A_i$} の部分列といい、{$ \sm ...
ダイクストラ法
問題
頂点数が $\small N$、辺の数が $\small M$ のグラフでそれぞれの辺の重みが $\small W (\ge 0)$ であるとき、ある頂点から各頂点までの最短経路を求める。
計算量$ O((N+M)\l ...
SortedList
説明
Python で書かれた要素を追加・削除しても整列状態を保てる List のようなもの。SortedList に格納する値は comparable でなければならない。タプルやリストも格納可能。Python Sorted Cont ...
defaultdict
説明
defaultdict は dict のサブクラスで1つめの引数にdefault_factory 属性の初期値を与えることができる他は dict と同じ。default_factory が None でない場合、存在しないキーを指 ...
bisect_left と bisect_right
両者の違いbisect_left(list, value)bisect_right(list, value)list中のvalue以上の最初の要素のインデックスを返すlist中のvalueを超える最初の要素のインデックスを返す
適用する ...