競技プログラミング用 知識集積所
ABC458C - C Stands for Center
最終更新:
sport_programming
-
view
問題
必要知識
B以下レベルの内容は省略
- 特になし
考え方
開始位置と終了位置の組で全探索をすると、O(N^2)必要なのでTLEする。
ある程度うまくまとめながら数えていくことが必要。
ある程度うまくまとめながら数えていくことが必要。
ということで、同じCが中央にくるものごとに数える。
あるCに注目したとき、そこより前にx文字、そこより後ろにy文字あったとする。
この場合、そのCが中央に来る文字列はmin(x,y)+1個ある。
あるCに注目したとき、そこより前にx文字、そこより後ろにy文字あったとする。
この場合、そのCが中央に来る文字列はmin(x,y)+1個ある。
ということで、前から順にCの文字を探し、見つけるたびにそこを中央にする文字列数を足していけばよい。