srupのメモ帳

競プロで解いた問題や勉強したことを記録していくメモ帳

実装

aoj 2152 Restrictive Filesystem

問題 問題概要 W,D,Lの命令が与えられる。Wは書き込む数字とサイズ、Dは削除する数字、Rは読み込む場所を標示するという命令。書き込むは前から貪欲に、開いている部分にサイズ分書き込むこと。 解法 Wできる区間(空き区間)をprioroty_queueで保持することに…

yukicoder No.428 小数から逃げる夢

問題 問題概要 0.(190桁)のような少数が与えらえる。これをn倍した値を求める。 解法 小数点以下が多くある状態で扱ってるとまずいので、全体を整数で扱うことにした。Dを整数としてあつかい、それに与えられたnをかける。あとは、これをDを整数にするために…

ABC 030 C - 飛行機乗り

問題 問題概要 省略 解法 貪欲に選んでいけばいい。なぜなら、飛行時間はxとyで決まっているので、乗れるだけ早い時間にのり、もう一方の空港に行っているほうが得。(損はない) 実装方法だが、今どちらの空港にいるのかが判断できるものと、いまの時刻がわか…

ABC 030 B - 時計盤

問題 問題概要 省略 解法 時計を1周分を360度と考えて、それぞれの針が何度回ったかを計算する。最後に注意しなければならないことがあり、針の角度の差を取ると、180度を超えることがあるが、それは角度の大きいほうを図ってしまったいるので、小さいほうを…

ABC 024 B - 自動ドア

問題 問題概要 省略 解法 aは昇順に並んでいるので、時系列に沿った形で見ていく。ドアが開き始めた時間をl、閉じる予定の時間をrおき、aiがrより小さいなら、なら、時間がtよりすくないが延長され、rより大きいなら、一度ドアが閉じ、そのあと、時間がtだけ…

yukicoder No.193 筒の数式

問題 問題概要 省略。 解法 ほぼ実装問題。文字の長さは短いので、数字で始まり終わる1周分の文字列をすべて全探索すればいい。このときに、sを2倍に伸ばしておくと、前に戻ってくる処理を簡単に省くことができる。あとは、前から見ていき、数字の部分num…

yukicoder No.154 市バス

問題 問題概要 バスが通るのを記録する。それぞれの系統に対して、最終1つ前のバスと最終のバスはほかのバスとその他のバスをそれぞれ異なるように記録している。その記録が条件に沿ったものかを判定する問題。 解法 それぞれの系統のバスは、WGRの順に出て…