아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

접두사 없는 부분집합

면접 대비

시간 제한1초메모리 제한128 MB

요약
주어진 단어 집합에서 어떤 단어도 다른 단어의 접두사가 되지 않는 부분집합 개수를 셉니다.
난이도

보통10점 중 5점

유형
트라이, 동적 계획법, 트리
정답자
아직 제출이 없습니다

문제

단어 집합에서 어떤 원소도 다른 원소의 접두사가 아니면 그 집합을 접두사 없는 집합이라고 한다. 예를 들어 {"hello"}, {"hello", "goodbye", "giant", "hi"}, 공집합은 접두사 없는 집합이다. 반면 {"hello", "hell"}과 {"great", "gig", "g"}는 접두사 없는 집합이 아니다.

단어 집합이 주어지면 접두사 없는 부분집합이 몇 개인지 구하라. 공집합과 전체 집합도 부분집합으로 센다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스의 첫째 줄에는 집합에 속한 단어의 개수 NN이 주어진다. NN은 1 이상 62 이하이다. 이어지는 NN개의 줄에 단어가 한 개씩 주어진다. 단어는 알파벳 소문자로만 이루어지고, 길이는 100을 넘지 않는다. NN개의 단어는 서로 다르다.

출력

각 테스트 케이스마다 Case #x: M 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, MM은 접두사 없는 부분집합의 개수이다.

예제1

  1. 예제 1

    입력
    3
    3
    hello
    hell
    hi
    4
    a
    b
    c
    d
    6
    a
    ab
    abc
    abcd
    abcde
    abcdef
    
    예상 출력
    Case #1: 6
    Case #2: 16
    Case #3: 7