만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

큰 버튼

면접 대비

시간 제한20초메모리 제한1024 MB

요약
R과 B로 이루어진 길이 N의 문자열 중 주어진 P개의 금지 접두사로 시작하지 않는 문자열의 개수를 센다. 일부 접두사가 다른 접두사를 포함할 수 있다.
난이도

보통10점 중 5점

유형
문자열, 트라이, 정렬, 조합론
정답자
아직 제출이 없습니다

문제

당신은 인기 있는 새 게임 쇼의 참가자이며, 큰 상금을 놓고 게임을 하고 있다.

빨간 버튼과 검은 버튼, 두 개의 큰 버튼이 있다. 당신은 정확히 N번의 버튼 누르기 순서를 만든다.

만들 수 있는 순서는 많지만, 길이가 N 이하인 P개의 금지된 접두사가 있다. 만든 순서가 금지된 순서 중 어느 하나로 시작하면 큰 상금을 받지 못한다. 순서 중간에 금지된 접두사가 하나 이상 나타나는 것은 괜찮다. 단, 순서의 맨 앞에 나타나면 안 된다.

우승 순서는 정확히 N번의 버튼 누르기로 이루어져야 하고, 금지된 접두사 중 하나로 시작하면 안 된다. 서로 다른 우승 순서는 몇 개인가?

입력

입력의 첫 줄에는 테스트 케이스의 수 T가 주어진다. T개의 테스트 케이스가 이어진다. 각 테스트 케이스는 위에서 설명한 두 정수 N과 P를 포함한 한 줄로 시작한다. 그 다음 P개의 줄이 있으며, 각 줄에는 금지된 버튼 누르기 순서 중 하나를 나타내는 1자 이상 N자 이하의 문자열이 주어진다. R은 빨간 버튼 누르기, B는 검은 버튼 누르기를 나타낸다.

출력

각 테스트 케이스마다 Case #x: y를 포함한 한 줄을 출력한다. 여기서 x는 테스트 케이스 번호(1부터 시작)이고, y는 위에서 설명한 우승 순서의 수이다.

제한

  • 1 ≤ T ≤ 100.
  • 1 ≤ P ≤ min(2N, 100).
  • 각 금지된 접두사의 길이는 1자 이상 N자 이하이다.
  • 두 금지된 접두사가 같지 않다.

예제2

  1. 예제 1

    입력
    3
    3 2
    BBB
    RB
    5 1
    R
    4 3
    R
    B
    RBRB
    
    예상 출력
    Case #1: 5
    Case #2: 16
    Case #3: 0
    
  2. 예제 2

    입력
    1
    50 5
    BRBRBBBRBRRRBBB
    BRBRBRRRBRRRBRB
    BBBRBBBRBRRRBBB
    BRBRBRRRBRRRB
    BRBRBBBRBBBRB
    
    예상 출력
    Case #1: 1125556309458944