Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder 第一回日本最強プログラマー学生選手権-予選-

2AC1WA。

そして・・・

f:id:mdstoy:20190824230206p:plain

ぎりぎり緑に落ちたー。

各問題

A - Takahashi Calendar

愚直に月と日で2重ループを回して計算すればよいです。

私は恥ずかしながら、d1とd10が≧2であるという条件を見落としていて、7分かかってしまいました。条件はちゃんと読もう。

B - Kleene Inversion

まずA単体については愚直にループを回して転倒数の数を求めればよいです。これがK個あるのでK倍します。

Bの中のAについては、後ろに繋がっているAの中にある転倒数となり得る要素すべてが対象となるので、累積和である数以下の数を保存しておいて(editorialによると、そこまでしなくても全探索で間に合うそうですが)、それぞれの要素に対して数を求めて足し上げて、K * (K - 1) / 2を掛けます。(先頭のAに対しては後ろにK - 1個のAが、2番目のAに対しては後ろにK - 2個のAが・・・、という具合に (K - 1) + (k - 2) + ... + 1個ある)

上記の二つを足したものが答えです。(適宜MODを取るのを忘れない。あと、/2の部分に注意)

私はいろいろ考察ミスをしてしまい時間を溶かしたあげく、MODを取る際に括弧の位置を間違えて1WA出してしまいました。

C - Cell Inversion

考察すらまともにできず、タイムアップでした。

いま、これを書きながら解説放送を聞いているんですが、つい最近同じような問題がありましたね?うーん、復習不足・・・。

まとめ

細かいミスの積み重ねの結果、緑に落ちてしまいました。まあ仕方ない。次回からまたがんばります。