ダイクストラ法を用いた単一始点最短経路の導出

単一始点からグラフ内の全頂点への最短距離を算出する代表的な手法として、ダイクストラ法(Dijkstra's Algorithm)が広く利用されています。本アルゴリズムは、すべての辺の重みが非負である場合に限り、正確な最適解を保証します。 アルゴリズムの動作原理 処理の手順は以下の通りです。 始点の距離を 0 に設定し、他の全頂点の距離を無限大(∞)で初期化します。同時に ...

7月27日 23:00 投稿

Union-Findデータ構造の基礎アルゴリズム

Union-Findデータ構造 基本的なテンプレート実装から始めましょう。 この種の問題は比較的単純で、主要な関数を正しく実装すれば解決できます。 int findRoot(int node){return (node == parent[node] ? node : parent[node] = findRoot(parent[node]));} 豆知識:多くの人はこの関数をFindやfindと命名しますが、私の場合はなぜfindRootという名前を使用しているので ...

7月21日 01:43 投稿

SMU Summer 2023 Contest Round 4のアルゴリズム解説

A. Telephone Number この問題では、与えられた文字列から標準的な11桁の電話番号を作成できるかを判定します。電話番号の最初の数字は'8'でなければならないため、最初の'8'が現れる位置が重要です。文字列の長さを n とすると、最初の'8'のインデックスが n - 11 以下であれば、その後ろに残りの10桁を配置するための十分な文字数が存在します。 #include <iostream&g ...

6月24日 00:42 投稿