こんにちは。今日は競技プログラミングで頻出(たぶん)の最短経路問題 を、BFSとDijkstra's algorithmというアルゴリズムで解いてみます。 扱う題材はAtCoder「競プロ典型90問」からの次の二問です。 辺に重みがない時の最短経路の計算には幅優先探索(BFS)を ...
ダイクストラ法は、エドガー・ダイクストラが発明した、グラフ上で最短経路を見つけるためのアルゴリズムです。ここでいうグラフは、地図やネットワークなど、点と点が線でつながっている構造のことを指します。 このアルゴリズムは、「重み付き ...
最初の行には2個の整数 N と R が含まれる。 N は都市の数を表し、 Rはそれらの都市をつなぐ道の個数を表す。 2行目以降はR行に渡って、2個の整数 Ai, Bi、1個の実数 Li が含まれる(1≦i≦R)。 Ai と Biは道の両端の都市を表し (0≦Ai≦N-1, 0≦Bi≦N-1)、 Liは道 ...
IT技術の進化のスピードには目を見張るものがありますが、それを支えているのはアルゴリズムと呼ばれる処理方法(技術的アイデア)です。さまざまなアルゴリズムの中でも、コンピュータの進化に革命的な影響をもたらしたとされる偉大なアルゴリズムは ...
ダイクストラ法は、以下の 2 つのルールにしたがって、最短経路長を求めるアルゴリズムです。 ルール1スタートに近い頂点から順番に、答えを確定させていく ルール2 答えが確定したら、その頂点に隣接する頂点の最短経路長を更新する 例として、上図の ...
最短経路探索のアルゴリズムを用いた、各プログラム言語の速度比較を行ったエントリが注目を集めている。 これはPythonやGo、Rustなど7つの言語を対象に、最短経路探索のアルゴリズムを用い、それぞれの実行速度を比較したもの。要するに、ある言語で ...
本書(原題:Python Algorithms: Mastering Basic Algorithms in the Python Language)はアルゴリズムの分析と設計方法について、Pythonを使って説明します。古典的なアルゴリズムに焦点を絞って解説していますが、基本的なアルゴリズムによる問題解決の方法もしっかり理解 ...