SHOJIN.E.D

プログラミング、英語、筋トレなど日々精進していきます

今日やったこと(2020/5/2)

今日は13時起床相変わらずクズみたいな生活である。昨日は2時に寝たはずなのになあ・・・シャワー浴びてご飯食べて14時から作業開始!

1. VScodeスニペットを登録

僕は競プロにC++を使っているんですがライブラリのインクルードとかfor(int i = 0;i < n ;i++)とかいちいち書いていられないということで入力を補助してくれるスニペットとやらを登録してみました。とっても便利である。

2. ABC154に挑戦

A問題

A-Remaining Balls

if文で文字列が同じやつの数字から1引くだけ!

B問題

B - I miss you...

文字列の文字数文'x'を出力するだけ! 最後に改行を出力することに注意

C問題

C - Distinct or Not A_{1}からA_{N}で全探索してみたらO(N2)でTLE

この整数列のどの2つの要素も互いに異なるならば→重複を許さなければいいいと考えてsetに入れて要素数が同じだったら"YES"、違ったら"NO"と出力でAC

解説を見たらソートすると同じ要素が隣接するから先頭から順に探索してもいいとあった。なるほどね

D問題

D -Dice in Line

期待値を求めるところまではいけたけど隣接するK個の期待値の最大を求めてもO(N2)でTLEしてしまう・・・

結構考えてもわからなかったから解説をみると期待値の累積和を求めてそれらの差をとるとO(N)で最大の期待値を求めることができると!頭いいなあ・・・ そして、最大値を出力してもWAになってしまった・・・原因は普通にcout << max <<endl;しても少数点以下5桁で切られちゃうみたい。それで誤差が出てWAという感じだったので、小数を出力するときは気を付けようという話でした。

この方法はほかの問題でも使えそうなので覚えておこうと思います。

今日はABCまではなかなかいい調子で解くことができた!この調子で頑張りたい!!! D問題も理解することができてうれしす!!