Toy と帽子と ADP BE

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

UNICORNプログラミングコンテスト2021(AtCoder Beginner Contest 225)

3完。

せっかく前回水復帰したのに、AGCを明日に控えている状況でまた緑に落ちるという・・・。

各問題

A - Distinct Strings

3文字とも異なる場合、321=6通り、2文字が同じで1文字だけ異なる場合、(3*2)/2=3通り、3文字とも同じなら1通りです。

B - Star or Not

ある頂点が全ての辺に含まれていればスターなので、頂点の出現回数を数えてn-1回の頂点があればスターです。

C - Calendar Validator

右方向には1ずつ増え、下方向には7ずつ増えるので、それを確認していけばよいです。

ただし、7の倍数は必ず右端に来るので、それをまたぐ形(7, 8, 9 など)は絶対来ないのでそれははじかなければなりません。

D - Play Train

各車両の前につながっている車両と後ろにつながっている車両を管理しておけばよいです。3のクエリは愚直に求めてO(N)かかりますが、出力する電車の番号の個数の合計は 106以下という制約があるため十分間に合います。

自分はなんと、後ろにつながっている車両と、「先頭」につながっている車両を管理しようとして爆死しました・・・。頭湧いてたとしか思えない・・・。

E - フ

ACL Contest1のA - Reachable Townsかなあと思って頑張ってみたのですが、違ったっぽいです。

F - String Cards

まあF問題だから絶対違うよねと思いながら、単純にソートしてつなげる解を投げてみましたが、やっぱり嘘解法でしたw

まとめ

Cまではかなり早く、Dの実装もすぐに終わったのにちょっと自分でも考えられないようなわけのわからないことになって、言葉になりません。

f:id:mdstoy:20211030230811p:plain