어떤 문자열이든 길이가 n이면 2^n개의 부분 문자열을 가지고 있습니다. 부분 문자열은 기존 문자열이서 임의의 문자를 지워 만든 문자열입니다. 그런데 어떤 부분 문자열은 여러번 나올 수도 있습니다. 예를들어 문자열 "zoo"는 6개의 다른 부분 문자열을 가지고 있습니다
부분 문자열 "z", "oo", "zoo"는 한 번만 나타납니다. 텅 빈 부분 문자열도 한 번만 나타납니다. 부분 문자열 "o", "zo"는 두 번씩 나타납니다.
문자열 S가 k개의 다른 부분 문자열을 가지고 있고, i번째 부분 문자열이 fi번 나타난다고 가정합시다. 그럼 이 문자열 S의 반복성을 다음과 같은 식으로 나타낼 수 있습니다.
문자열 "zoo"의 반복성은
이 됩니다.
입력 zoo 10 출력 2 입력 @#$% 1000000 출력 16※공식들은 Daum Equation Editor를 이용했습니다.
출처:CEMC (CCC 2013 Stage 2) 번역:ladown21