0.はじめに
ABC452はお出かけのため不参加だったので
転職活動記を投稿したけどあまり閲覧数が伸びず悲しい今日この頃。
いつものようにABCは順調に解けるもDが難しい・・・。
結局そのまま時間切れとなるも、A~Cが早く解けたためか
レートは+19の795と意外と上がりました。
1. A - Trimo
先頭の”o”だけ除去すると言う問題。
最初思わず全部除去してしまいました。
【実装】
最初に回答用文字列ansを空でflgを0で用意
文字列を先頭から見ていき
”o”以外だったらflgに1をセット
flgが1の時ansに見ている文字を追加
最後にansを出力して終了
https://atcoder.jp/contests/abc453/submissions/74835847
2.B - Sensor Data Logging
タイミング毎に比較していく問題。
こちらも、最初に誤って比較対象を現時刻の測定値と1つ前の測定値としてしまい
悩みました。
【実装】
回答用リストans(測定時刻とその時刻の測定値のタプルを保持する)を用意し0とA[0]のタプルをセット
前回保存値pにA[0]をセット
以下、変数iを1~Tまで繰り返し
A[i]-pの絶対値がx以上の時、ansにiとA[i]のタプルを追加し、pにA[i]をセット
最後にansの値を1行ずつ表示し終了
https://atcoder.jp/contests/abc453/submissions/74844508
3.C - Sneaking Glances
問題を読んでbit全探索だな、これは。
と、思いました。
過去の似たような問題からロジックを持ってきて調整して
無事ACとなりました。
【実装】
1.NとLを読み込む
2.回答用変数ansに0をセット
3.iを0から、2のN乗-1まで繰り返し(bit全探索)
-1.nans(iの中での0をまたぐ回数)に0をセット
-2.pre(移動前の位置)に0.5をセット
-3.以下jを0からN-1まで繰り返し(iの桁ビット移動)
-1.iのj桁目が1の時、nowにpre+L[j]をセット(右に移動)
-2.iのj桁目が0の時、nowにpre-L[j]をセット(左に移動)
-3."nowが0より大きくpreが0より小さい"か
"nowが0より小さくpreが0より大きい"時(移動が0をまたぐとき)nansに1を加算
-4.preにnowをセット
-4.ansにansとnansの大きい方をセット
4.ansを出力して終了
https://atcoder.jp/contests/abc453/submissions/74855312
以上