企業主催?よくわからんが参加だ。数をこなせウィッヒー! 配点的にABとCかDクリアを目標で。
結果
A,B,C問題はAC。D問題は提出にもいたらず。E以降は問題文すら見れてねえ。
C:AB Substrings
連結してABができるか。変に被ったりしないので文中にあるABのほか、頭としっぽに注目すればよいことにはすぐ気づいた。 すると
- 頭がB、しっぽがAの文字列
- 頭がB、しっぽがA以外の文字列
- 頭がB以外、しっぽがAの文字列
の場合でちょいと調整が必要であることがわかるから簡単な例を並べて調整方法を見つければよい。
追記
1.を全部くっつける。2.、3.から1個ずつ持ってきて1.にくっつける。残りの2.、3.をくっつける。みたいな感じ。
D:DivRem Number
最大だから全探索じゃとても間に合わないよねえということで高速化が必要。で止まった。 modなんでとりあえずN=km+lと置いてみりゃ解説の方法思いついたかも。約数求める高速なアルゴリズム思いつかないから結局無理だったかな。いやググればすぐ出てくるからいけるか。
追記
として計算したらいいだけみたいだ。
<とおく。
より
[1,)でを探索、を算出すればよい。 はなので間に合う。ACできた。
所感
B問題を読み間違えて無駄に時間使っちゃった。問題文は落ち着いてちゃんと読もう。 約数を高速に求める方法とか定石的なものは一通り見ておこう。