Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder Beginner Contest 189

4完2WA。

各問題

A - Slot

三つの文字を比較すればよいです。

B - Alcoholic

言われた通りのことをするいつものB問題ですが、百分率が出てくるので面倒臭そうです。これは、Xの方を100倍してしまえばV * Pを加算していくだけでよくなり100で割る必要がなくなります。

C - Mandarin Orange

制約が二重ループせよと言っています。

あとは、lからrまでの和をどうするかなんですが、これ実はどう考えても区間内minに区間内に含まれる個数を掛けたものになります。区間内minより小さいものはもちろんないですし、区間内minを超えるものは区間内minとして計算しないと問題文の条件が満たせません。

二重ループするのですから、都度区間内minを更新していき、今見ている区間の幅を掛けたものが答えの候補で、それの最大値を答えればよいとなります。

区間内minかける幅、に1時間気づかずに椅子を温め続けてしまったのは内緒です。

D - Logical Expression

ANDのまわりはTrue, Trueでないとだめなので、1通りです。なのでORの部分だけ考えればよいです。

ORの後ろがTrueのとき、その前の部分については全ての組み合わせが許容され、それは2^「ORの前にある個数」通りあります。

ORの後ろがFalseのときは、その前がTrueでなければなりません。これは全体で1通りです。(ANDにかかる部分は必ずTrueであるため、一番うしろのORの前の部分が全てTrueでないと成り立たないです ← いや、説明が下手すぎる・・・)

それを考慮して全て足しあげれば答えが出ます。

E - Rotate and Flip

どういう変換が行われた結果、どうなったかだけ保持しておけば、n回目の操作のあとの座標はO(1)で求められる、というのはわかったのですが、どういう変換で変換結果をどう保存すればよいかはわからず・・・。幾何・・・。

一応、スタート地点が原点を中心にした円周上のどの部分にあるかと、3と4の操作の後原点が移動することを考慮するとねじ伏せられなくもない気がしましたが、残り30分ではさすがにそんなの実装できません。あと2時間あればあるいはw

F - Sugoroku2

Cで時間を半分以上使い、Eが解けなかったので、Fは確認しただけです。

(嘘)貪欲が通用するような問題ではないことだけ確認しましたw

まとめ

Cが解けない時点で死亡確定だと思ったので、むしろよく踏ん張ったほうだと思います。

f:id:mdstoy:20210123231559p:plain