Atcoder 灰diff埋め ARC116~ARC130 振り返り
ABCのdiffとARCのdiff全然難易度が違う気がする……
ARC130 A - Remove One Character【解説AC】
全てのSiの文字列を生成し,その個数を記録しておいて,nCrで求める手法はTLEになります.
SiとSjが等しいと言うことに対し,他にどのような性質があるかを考える必要があります.i番目の文字が削除されると言うことは,i+1文字目移行の全ての文字が,i文字目に移動するという性質を利用します.SiとSjが等しいならば,i番目からj番目までの文字は全て等しいと言うことになります.
これを利用して,連続して等しい文字の数を記録し,それを足し合わせることで答えを出すことが出来ます.
import math N = int(input()) S = list(input()) n = 0 ans = 0 for j in range(1, N): if S[j] == S[j-1]: n += 1 else: n = 0 ans += n print(ans)