kwm_t

kwm_tのメモ

ARC128

Cまでといても+10しかなくて悲しい。
まあC青diffだしそんなもんか
■A - Gold and Silver
入力で与えられてた例が
2,3,4,5,4,3,1とかだったとして
適当に偶数個拾ってきて、*と÷を順番に入れた結果が最大になればいい
2倍より3倍がお得さらに*4よりも*5がお得
÷は÷1が一番得する
というのを考えると減少列の最初と最後を採用すればいい。

■B - Balls of Three Colors
xyxのような形を作れば、あとx回で達成できる。
この状態を作るためには差がmod3であればいいことと
これが最小になることの証明は簡単にできる

■C - Max Dot
嘘解放な気がするけど。
数列Aが単調増加なら簡単になる。
また減少列なら、全てに同じものを振り分ける必要があるので
5,1,1は7/3,7/3,7/3と同じと考えていい。
という操作をn回繰り返せば単調増加な数列に変換できるので
そのあとは上からあてがえばいい。

■D - Neq Neq
入力例4が結構なヒントになる。
適当に考察すると、a[i]==a[i+1]ならそこが変わることはないので
分割して考えて、掛け合わせばいいことがわかる。(サンプル4だと2*7*1)
あとは適当にdpをすればいいのだけど
abcdedgとあって
a*****gにできないのはどういうとき?というのを考えると
この区間に出てくる要素の種類が2つのときのみ不可(長さ4以上)
あとは適当に累積和dp
素数の管理はmapで適当に。

■E - K Different Values
chocoruskさんの実装を読み解いて解説AC
構築は苦手です