こんにちは。今日は競技プログラミングで頻出(たぶん)の最短経路問題 を、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技術の進化のスピードには目を見張るものがありますが、それを支えているのはアルゴリズムと呼ばれる処理方法(技術的アイデア)です。さまざまなアルゴリズムの中でも、コンピュータの進化に革命的な影響をもたらしたとされる偉大なアルゴリズムは ...
プログラミングの上達のためにはアルゴリズムの理解は欠かせない。3つのテーマで厳選した10個のアルゴリズムをPythonによる実装とともに解説する。 「スタック」(stack)と「キュー」(queue)は、最も基本的で単純なデータ構造です。どちらもアルゴリズムや ...