Web系エンジニアのアウトプット練習場

エンジニアリングのことはもちろん、全然関係無い話もします。

AtCoderに初参加しました(ABC127)

以前、一瞬だけチャレンジした競技プログラミングですが、AtCoderが最近周りで流行ってるのでやってみました。

正確には先週のABC126が初参加だったのですが、コンテスト自体がUnratedになったので、記念すべき初めてのRatedなコンテストはABC127となりました。
(ABC126がリハーサル的な感じになったのでむしろよかったw)

言語はPython3 (3.4.3)で挑戦しました。
ちょっとしか使ったことなかったけど、簡潔にコードかけるし、流行ってるしで、勉強したくなって採用。

今回の結果から言うと、

A問題B問題C問題はアルゴリズム的には特に問題なく通過。 ただし、C問題でmaxLがmaxRよりも大きくなる場合を考慮し忘れて一回WA喰らいました(答えが負になってた)

D問題は答えは合ってたもののTLEで通過できず。

E, F問題は手付かずでした。

D問題は愚直に前から順にカードの中で小さいものからB_j枚を書き換えることをM回繰り返していましたが、C_jの大きいものからソートしておき、予め小さい順に並べておいたaの前から上書きしていけば、同じカードを2回書き換える必要がなくなるとのこと。確かに。

E問題はコンテスト中は手付かずだったが、仮に時間があってもわからなかったと思う。 フェルマーの小定理を用いたコンビネーションの計算を覚えた。

F問題は、、、単にむずくね?
復習によってPythonのheapqなるものを知った。
普段Python使ってないので、こういう基本的なところから勉強できて良い感じ。

これからも毎週続けていこうと思います。まじで勉強になるので。
ちなみに次回はAGCですが、太刀打ちできるか不安です。
過去問みてみよ。