2011-02-26から1日間の記事一覧

MazeMaker srm 435.5 div2 mid

幅優先探索で、行ける所全部に最小到達歩数を記録。 到達不可能地点があるかチェック。あるなら、return -1。無い場合、最大の最小到達歩数を返す。 障害物で行けない地点は、走査時に除いて考える。 #include <sstream> #include <string> #include <vector> #include <map> #include <algorithm> #in</algorithm></map></vector></string></sstream>…

ColorfulTilesEasy srm 472 div2 easy

結構考えて、時間ぎりぎりで解答が分かった。 列の中で同じ色が続いている部分を「連」と呼ぶことにする。色が4色あるので、連の両サイドがどんな色だったかを気にせずに必ず「(連の長さ) / 2」ステップで連の内部及び連の両端で同じ色が連続しないように出…

BatchSystem srm 481 div2 hard

基本的には、全ジョブの所要時間合計が少ないユーザのジョブから実行すれば良い。 但し、辞書式順で最小のものを返すために、次のようなソート処理を行った。 各ジョブ番号iに対して [user[i]の全ジョブの所要時間合計, user[i]が最初に出てくるジョブ番号, …

AutoLoan srm 258 div2 mid

2分探索 コメントで消しているのは、n買い目の支払い後の残高を明示的に書いた公式。これだと、テストケース0で駄目だった。 #include <sstream> #include <string> #include <vector> #include <map> #include <algorithm> #include <iostream> #include <utility> #include <set> #include <cctype> #include <queue> #include <stack> #include <cstdio> #i</cstdio></stack></queue></cctype></set></utility></iostream></algorithm></map></vector></string></sstream>…

StockHistory srm 232 div2 hard

第i月に入る収入は、第i月以降で最もリターンの高い投資機会(株とタイミングの組み合わせ)に全額投資するのが最も効率的 上の考察をそのままコードに落とすだけ。 maxGain=1で初期化しているので、ループの最初のretの更新ではretは変化しない。けど、こうし…