ABC179感想

AtCoder Beginner constest 179に参加した。れーとが40下がった。おもんねえ

けどまあそうなってもしかたないような最悪のパフォーマンスだった

f:id:knzk398:20200920221345p:plain

 

A. Plural Form

文字列の1番後ろがsかどうか判定する。std::stringにはback()があるのでstring s;s.back();で一番後ろの文字が取得できる。

https://atcoder.jp/contests/abc179/submissions/16892588

B. Go to Jail

問題文の通りにやる

https://atcoder.jp/contests/abc179/submissions/16892755

C. A*B+C

AとBが決まればCは C=N-A*Bのように一意に定まる。Aを固定して考えると、Bの値としてあり得るのは1,2,...,(N-1)/A(N-1)/A個なので、\sum_{a=1}^{N-1} (N-1)/aが答えになる。A,Bを全探索しても調和級数で二乗ではなくlogに落ちる。

https://atcoder.jp/contests/abc179/submissions/16892840

D. Leaping Tak

マジで頭がついてなくて最悪だった。DP[i] := 座標 i にたどり着く方法の個数として区間全てについてfor文を回して配るDPをした。当然TLE。マジでなんもわからねえと思っていたら区間加算が出来ればいいんじゃないかというのが降ってきたので遅延セグ木を貼ってAC。遅延セグ木やるだけなのに2秒で考察終了できないのはほんとにつらい。コンテスト前日に遅延セグ木を整備していたのに。つらい。

https://atcoder.jp/contests/abc179/submissions/16910976

(135行あたりから)

E. Sequence Sum

競プロが下手くそ。これは適当に(N,X,M)=(30,2,1001)としてAを計算して出力してみると周期になっていることがわかるのですが、これをしなかったために一生わからんと言っていた。周期ということがわかれば周期に入る前のちょろと周期と残りのちょろを計算すればいいんですが、ここで実装の時にmを上書きしてしまって(mは入力として与えられているmodとる数字なんですが、周期から抜けた後のちょろを計算するときにちょろの長さをmとおいてしまった)それを見つけられずコンテスト中にACできなかった。

https://atcoder.jp/contests/abc179/submissions/16893854

 つらい

これが通ってたらギリ水パフォで、通らなかったため3月8日ぶりに緑パフォになってしまった。かなしい

 

Dは貼るだけだしEはABCで最近2,3回でてる周期がある系のやつなので、こんなにてこずったのが本当に悔しいです