競プロっておいしいの?(仮)

ARC 087 参加記録

CombNaf、明日!!!!

さて、DまでACしたので解説書いて明日の準備します。

ただ、D問題まで行くの時間かけて負けです負け。

明日CombNafなので準備したいですね。

あとyukicoderの Advent Contest、私の担当が明日ですので、

このあと、yukicoderも良ければ覗いてください。

(あの問題は、私の後輩に身に着けて欲しいテクニックで解ける問題を出題しました)

C問題

  1. まずソート。
  2. 種類を数える
  3. 数えた種類がその数と同じでないときに処理を挟む
  4. その数より多いときは差の分だけ
    その数より少ないときは個数分を
    ansに足し算
  5. おわり。

D問題

JOI過去問 - 1年生 (A First Grader)

が類題です、

DPでメモする意味がわからなかったが、添字メモったら一発で通ってクソかよwwwwwとなりました。

boolDPを書いてしまいました。

  1. まず、X座標とY座標を分解します。
  2. Tが出てきたらX座標とY座標を交換する
    要は FFF T FF T F T Fなら(X座標3,1:Y座標2,1)分動ける
    (プラマイどっちにも行けるが、初手Xだけプラスのみ)
  3. ここで a+or-b+or-c+or-... =X(Y)にできるかどうかのDPをする
  4. DP(int a,int b)と取ったときに、aが何個目を見ているか、bがa-1個目までの和を表しています。
  5. それをやるとうまくいきます
  6. XのDPは(1,A[0])としないと初手マイナスという不適なものをカウントしてしまうのでNG。YのDPはDP(0,0)でOK

こんな感じです。

詳しくはソースを読んで下さいな。

Submission #1878367 - AtCoder Regular Contest 087

おまけ。レート

f:id:nafmo17:20171216231404j:plain

 

perf. : 1593
rate : 1240 (+48) highest!!

水色になれました。ありがとうございます!!!!!