問題
https://community.topcoder.com/stat?c=problem_statement&pm=14091&rd=16625
<p>
n個の街がある。二つの街を移動するには、dist[i][j]時間かかる.
</p>
<p>
また、k magic pointが与えられる。 magic pointをつかうと移動時間を半分にすることができる.
</p>
<p>
街0から1への最小の移動時間を求めよ.
</p>
方針
ダイクストラ法をつかうのだと思った.
<ul class="org-ul">
<li>
<a href="https://ja.wikipedia.org/wiki/%E3%83%80%E3%82%A4%E3%82%AF%E3%82%B9%E3%83%88%E3%83%A9%E6%B3%95">ダイクストラ法 - Wikipedia</a>
</li>
</ul>
<p>
以下のリンクを参考に実装してみた.
</p>
<ul class="org-ul">
<li>
<a href="https://www.deqnotes.net/acmicpc/dijkstra/">ダイクストラ法(最短経路問題)</a>
</li>
<li>
<a href="https://www.geocities.jp/m_hiroi/light/pyalgo67.html">Algorithms with Python / ヒープ</a>
</li>
<li>
<a href="https://lethe2211.hatenablog.com/entry/2014/12/30/011030">Pythonでダイクストラアルゴリズムを実装した - フツーって言うなぁ!</a>
</li>
</ul>
<p>
ポイントは、magic pointをk回つかうことで、最小の移動時間が変動すること. 0から1へk回 magic pointをつかった結果を記憶しておいて、 最後に、その結果のなかでの最小値を求める.
</p>
<p>
で、いいのかな?? よくわからず、もう5時間くらい悩んでいるのだけれども。。。
</p>