페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
30000
ms
메모리 제한
1024
MB
최근에는 단어와 문자열을 이용한 게임이 매우 인기 있다. 이제 Edsger는 자신만의 비슷한 새 게임을 만들려고 한다. 지금까지 그가 생각해 낸 내용은 다음과 같다.
Edsger의 새 게임은 회문 삭제라고 한다. 이 게임의 플레이어에게는 길이가 인 문자열이 주어진다. 그런 다음 다음 과정을 번 수행한다.
현재 문자열에서 인덱스 하나를 균등한 확률로 무작위 선택한다.
해당 인덱스의 문자를 삭제한다. 그러면 문자가 하나 더 적은 새 문자열을 얻게 된다.
새 문자열이 회문이면 축하하는 의미로 사탕 한 조각을 먹는다.
이제 Edsger는 시작 문자열이 주어졌을 때 게임 중에 먹게 될 사탕 수의 기댓값이 얼마인지 궁금해한다.
시간 제한: 30초. 메모리 제한: 1 GB. . 문자열 은 영문 소문자로만 구성된다.
.
.
입력의 첫 번째 줄에는 테스트 케이스의 수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다. 각 테스트 케이스는 두 줄로 구성된다.
각 테스트 케이스의 첫 번째 줄에는 문자열의 길이를 나타내는 정수 이 주어진다.
각 테스트 케이스의 두 번째 줄에는 영문 소문자로 구성된 길이 의 문자열 가 주어진다.
각 테스트 케이스마다 Case #$x$: $E$을 포함하는 한 줄을 출력한다. 여기서 는 테스트 케이스 번호이며(1부터 시작), 는 게임 중에 먹게 될 사탕 수의 기댓값이다.
은 다음과 같이 소수 ()로 나눈 나머지로 계산해야 한다. 테스트 케이스의 답을 기약분수 로 나타낸다. 그러면 수 는 모듈러 방정식 를 만족해야 하며, 이상 이하이어야 한다. 이 문제의 제한 조건에서는 그러한 수 가 항상 존재하며 유일하게 결정됨을 보일 수 있다.
2
2
ab
3
aba
Case #1: 2
Case #2: 333333338
첫 번째 테스트 케이스에서 게임은 다음 두 가지 방식 중 하나로 진행될 수 있다(각 단계에서 제거되는 문자에는 밑줄이 그어져 있다).
"ab" "a" "" (여기서 ""는 빈 문자열을 나타낸다). 와 ""는 모두 회문이므로 사탕 두 개를 먹게 된다.
"ab" "b" "". 와 ""는 모두 회문이므로 사탕 두 개를 먹게 된다.
전체적으로 먹게 될 사탕 수의 기댓값은 개이다.
두 번째 테스트 케이스에서 게임은 다음 여섯 가지 방식 중 하나로 진행될 수 있다(각 단계에서 제거되는 문자에는 밑줄이 그어져 있다).
"aba" "ba" "a" ""
"aba" "ba" "b" ""
"aba" "aa" "a" ""
"aba" "aa" "a" ""
"aba" "ab" "b" ""
"aba" "ab" "a" ""
전체적으로 먹게 될 사탕 수의 기댓값은 개이다. 은 출력 절에서 언급한 조건을 로서 만족하는 유일하게 결정된 수이므로, 이 이 테스트의 답이다.
Copyright Google LLC; sourced from the Google Coding Competitions Archive.
로그인 상태를 확인하는 중입니다.