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

エンジニアリングと書評が中心。たまに全然関係無い話もします。
トップページ/競技プログラミング/AtCoderに初参加しました(ABC127)/
2018年05月26日

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

競技プログラミングAtCoder

以前、一瞬だけチャレンジした競技プログラミングですが、AtCoderが最近周りで流行ってるのでやってみました。
正確には先週のABC126が初参加だったのですが、コンテスト自体がUnratedになったので、記念すべき初めてのRatedなコンテストはABC127となりました。
(ABC126がリハーサル的な感じになったのでむしろよかったw)
言語はPython3 (3.4.3)で挑戦しました。
ちょっとしか使ったことなかったけど、簡潔にコードかけるし、流行ってるしで、勉強したくなって採用。
今回の結果から言うと、
A問題B問題C問題はアルゴリズム的には特に問題なく通過。 ただし、C問題でmaxLがmaxRよりも大きくなる場合を考慮し忘れて一回WA喰らいました(答えが負になってた)
D問題は答えは合ってたもののTLEで通過できず。
E, F問題は手付かずでした。
D問題は愚直に前から順にカードの中で小さいものからBj枚を書き換えることをM回繰り返していましたが、Cjの大きいものからソートしておき、予め小さい順に並べておいたaの前から上書きしていけば、同じカードを2回書き換える必要がなくなるとのこと。確かに。
E問題はコンテスト中は手付かずだったが、仮に時間があってもわからなかったと思う。 フェルマーの小定理を用いたコンビネーションの計算を覚えた。
F問題は、、、単にむずくね?
復習によってPythonのheapqなるものを知った。
普段Python使ってないので、こういう基本的なところから勉強できて良い感じ。
これからも毎週続けていこうと思います。まじで勉強になるので。
ちなみに次回はAGCですが、太刀打ちできるか不安です。
過去問みてみよ。