Toy と帽子と ADP BE

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

AtCoder Beginner Contest 226

5完、9WA1TLE1RE。通した順番はA-B-E-C-D。なんだこれw

各問題

A - Round decimals

何をとち狂ったか、stringで受け取って自前でゴリゴリ処理するコードを20行ほど書いてしまいました。多分小数で受け取ってroundすればいいと思いますw

しかも最初HTTFのコードを投げてしまい1REを出すというとんでもないミスをしましたw

B - Counting Arrays

set<vector<int>>に作った配列をぶち込んでいって、setのcountを取ればよいです。

C - Martial artist

最初全然わからなくて、dpかと思ったら全く違って、適当に前から足していく嘘貪欲を書いても全然違って、どうしようどうしようとなっていました。

落ち着いて考え直すと、Nの技から事前に習得する必要のある技を手前に辿っていって必要な技を全て洗い出し、それらの技を習得する時間を足せばいいだけでした。

最初、Aの回答をこちらに投げてしまい1WA、普通に嘘回答を投げてさらに2WA、メモ化してない再帰を投げてしまい1TLEというハチャメチャぶりでした。

D - Teleportation

ABECの順番で通して15分しか残っていませんでしたので、直感的にxの差とyの差の比が同じなら同じステップを使えるはずだし、全探索で二点間のxとyの差の比を簡略化してsetに突っ込んで最終的にsetのcountが答えなんじゃね?と適当に実装したら通りましたw

なんでもやってみるもんだなー。(おい

E - Just one

各連結成分毎に閉路が1つだけあれば条件を満たすことができます。

というわけで、Union-Findを使って閉路の検知を行い、閉路ができる条件(uの親とvの親が同じ)を満たすたびにuを保存します。 全部の辺をつなぎ終わったら、保存したuの親を取り直します。(連結中に親が変わることがありそうなため)取り直した親の数と連結成分が一致していればOKで、各連結成分毎に閉路部が右回りと左回りの2通りあるので、答えは2連結成分数となります。 OKでなければもちろん答えは0です。

連結中に親が変わることが考慮できていなかったためなのか?1つだけWAが出て取り切れず、この問題だけで6WA・・・。

F - Score of Permutations

なんか類題はみたことがありそうなので、時間が余っていればワンちゃんあったかもしれませんが、残り7分では無理でした。

まとめ

ABしか通せず、CDがわからずスルーして、通せそうなEを1つだけのWAでえんえんハマり続けていた時点では、灰パフォが見えていてもう死んだと思いましたが、よく挽回しました。

それにしても、会心の出来でも緑パフォのこともあるのに、こんなにぐだぐだなのに水パフォとかもうわけがわかりませんね。

f:id:mdstoy:20211107230947p:plain