AtCoder Regular Contest 097
AtCoder Regular Contest 097に参加しました!
ABC097 旧版:
abc097.contest.atcoder.jp
ABC097 beta:
https://beta.atcoder.jp/contests/abc097/beta.atcoder.jp
ARC097 旧版:
arc097.contest.atcoder.jp
ARC097 beta:
https://beta.atcoder.jp/contests/arc097/beta.atcoder.jp
解けた問題だけ解説をしていきますー
要項
AtCoder Beginner Contest 097 / Regular Contest 097
rated 1200 / 2800
5/12(土) 21:00 ~ 22:40 (100分)
100-200-300(200)-400-600-800 (6問)
ペナルティ: 5分
方針
C,D問題を早解き、E問題も挑みたい。
可能ならF問題だけど時間足りないだろうし……。
A - Colorful Transceivers
要はかかつのどちらかが成り立っていれば通話可能です。
B - Exponential
まず、bは必ず以下になります。bを最小でも二乗するので、以下でないとXよりも大きくなってしまいます。
後は、2からまでの数を順にXを超えない範囲でp乗していき、その値のうち最大値を出力すれば良いです。
なお、においては1が解になることに注意してください。
K-th Substring
まず、問題文を見るとKがやけに小さいことが分かります。
ここで、substringの個数を考えてみるとせいぜい|s|K個の範囲で収まりそうです。
つまり、substringを全列挙してソートしてしまえば答えが分かります。
この時、同じsubstringが存在する可能性があることに注意し、適切に重複を削除してください。
オーダーはです。
D - Equals
まず、入れ替えは好きな回数行うことができるので、入れ替え対象に目的の地点が入ってるかのみを考えれば良いことが分かります。
ここで、とが入れ替え可能で、かつとが入れ替え可能である時、ともまた入れ替え可能です。
これは3個だけでなく、任意の個数で成り立つことが分かります。
これをからまでのN点のグラフで考えてみると、についてからに枝が引かれていると考えた時、
自身と同じグラフに属する全ての点に移動できると考えることができます。
つまり、各についてiが同じグラフに属していればにできると考えられます。
同じグラフに属しているか、といえばUnion-Find法が適切ですから、後はUnion-Find法をすればで解くことができます。
結果
ooxx 2完(700点) 23:26(0WA)
214位 パフォーマンス: 1935
レート: 1777→ 1794(+17)
感想
C問題の全列挙に発想が咄嗟に行かなかったのが痛い……。
substringでしかもなので、最初の文字を固定したときそこから0~K-1文字伸ばしたsubstringまでしか解になりえない、ということに頭が咄嗟に回らなかった。
ただ、CもDも難しくはない(特にDはUnion-Findを知っていれば一瞬)ので、典型の練習としては良さそうですね。
E問題以降を解けなかったのは完全に自分の実力不足なので精進し直しますー。