グラフ用語・定義,フロー,フローネットワーク

フローフローとフローネットワーク

関数 \(f : V×V \rightarrow \mathbb{R}\)で表現されるフローは、以下の特徴を持つ重み付き有向グラフ(フローネットワーク) \(G=(V,E)\) 上で定義されます。

2020年3月16日グラフ,競プロ,LCA,ダブリング,木の2頂点間の距離,木のパス上に頂点があるか

最近木においてある頂点の祖先は「親をたどってたどり着ける頂点」を指し、2頂点の共通祖先は「2頂点が共通して持つ祖先」のことを言います。

頂点 u と v の最近共通祖先(LCA: Lowest Common Ancesto ...

2020年3月15日その他bit全探索,全探索,テーマ記事,競プロ,半分全列挙,テクニック

N 個の要素の組み合わせを計算する際、N/2 ずつの2グループに分けてそれぞれを全列挙し、組み合わせ方を高速に求めるという工夫を「半分全列挙」と言います。

選択した数列の合計値を半分全列挙で探索する場合(\(2^4\)ずつに分け ...

2020年3月13日グラフ木の直径,グラフ,,競プロ,無向グラフ,重み付きグラフ

木に存在する2つノード間の最大距離を木の直径と言います。

重み無しの木でも、重み付きの木でも、木の最遠頂点間の距離が直径になります。

重み無しの木の例:

以下は直径が5となる木の例で

2020年3月13日その他組み合わせゲーム,スプレイグ・グランディの定理,Nim,NimK,テーマ記事,Misere Nim,競プロ,ゲーム,二人零和有限確定完全情報ゲーム,Grundy数

競技プログラミングなどで頻出のテーマである組み合わせゲームやGrundy数についてまとめました。

前半は全ての方に向けての内容で、プログラム例や競技プログラミング特有の話題については後半にあります。

組み合わせゲーム ...

2020年3月10日動的計画法区間,区間DP,区間の除去・圧縮・合体,DP,テーマ記事,競プロ

競技プログラミングで良く使われる動的計画法の1種、「区間DP」と呼ばれるものについてまとめました。

区間DPとは

区間DPとは、区間を表す添え字を持つ動的計画法(DP)のことです。

基本的には、以下のような DP ...

2020年3月7日グラフグラフ,競プロ,重み付きグラフ,単一始点最短経路,最短経路,ダイクストラ法,ヒープ,優先度付きキュー,貪欲法

グラフにおける単一始点最短経路問題とは、始点を固定した時に、他のすべての頂点への最短経路を求める問題のことです。

ダイクストラ法は、単一始点最短経路問題を解く時に利用され、利点としては

計算量が \(O(|E| \l ...

2020年3月7日グラフ負の辺,グラフ,競プロ,重み付きグラフ,ベルマンフォード法,単一始点最短経路,最短経路,負の閉路

グラフにおける単一始点最短経路問題とは、始点を固定した時に、他のすべての頂点への最短経路を求める問題のことです。

ベルマンフォード法は、単一始点最短経路問題を解く時に利用され、

負の辺が含まれているような場合でも適用 ...

2020年3月6日その他imos法,二次元区間和,区間和,テーマ記事,競プロ,区間,累積和

区間の更新がない場合

区間の更新が生じない場合は、累積和を用いることで高速にクエリを処理できます。

一次元の区間和

累積和を用いることで、

前処理:\(O(N)\)
クエリ:\(O(1)\)

で処理がで ...

2020年3月4日数学約数,競プロ,全列挙

整数 N の約数とは「整数 N を割り切ることができる整数またはその集合」のことです。

単純なアルゴリズムでは約数の全列挙に \(O(N)\) だけかかりますが、約数の性質を活かすと \(O(\sqrt{N})\) で全列 ...