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

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

홀수 부분열

시간 제한3초메모리 제한512 MB

요약
부분수열로 고를 수 있는 서로 다른 중복집합 중 원소 합의 십진수 표현에서 홀수 자릿수(1, 3, 5, 7, 9)의 개수가 홀수인 것의 수를 센다.
난이도

보통10점 중 7점

유형
조합론, 배열, 수학, 구현
정답자
아직 제출이 없습니다

문제

길이 nn인 음이 아닌 정수 배열 AA에 대해, 0개 이상의 원소를 지워서 얻을 수 있는 배열을 "부분열"이라고 한다.

배열 AA의 부분열 SS가 다음 조건을 만족하면 SS를 AA의 "홀수 부분열"이라고 정의한다.

  • SS의 원소의 합의 자릿수 중 홀수인 것들이 홀수이다.

음이 아닌 정수 배열 AA를 입력받아 AA의 서로 다른 홀수 부분열의 개수를 출력하시오. 단, 부분열의 원소를 정렬했을 때 그 결과가 같으면 같은 부분열로 취급한다.

A=[3,3,6,8,6]A = [3, 3, 6, 8, 6]인 경우 정답은 8이다.

  • 길이가 0인 홀수 부분열: 없음
  • 길이가 1인 홀수 부분열: [3][3]
    • 합이 3이고, 자릿수 중 홀수가 3으로 하나
  • 길이가 2인 홀수 부분열: [3,6][3, 6], [6,6][6, 6], [6,8][6, 8]
    • 합이 각각 9, 12, 14이고, 자릿수 중 홀수가 9, 1, 1로 하나씩
  • 길이가 3인 홀수 부분열: [3,3,6][3, 3, 6], [3,3,8][3, 3, 8]
  • 길이가 4인 홀수 부분열: [3,3,6,6][3, 3, 6, 6], [3,6,6,8][3, 6, 6, 8]
  • 길이가 5인 홀수 부분열: 없음

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다 (1≤T≤101 \le T \le 10).

각 테스트 케이스에 대해 첫 줄에 AA의 길이 nn이 주어진다. 둘째 줄에 nn개의 0 이상의 정수가 공백으로 구분되어 주어진다. AA의 각 원소는 0 이상 2,000 이하이다.

출력

각 테스트 케이스에 대해 홀수 부분열의 수를 한 줄에 출력한다.

힌트

  • 테스트 케이스 1: {3}\{3\}, {3,6}\{3, 6\}, {3,3,6}\{3, 3, 6\} 세 종류의 홀수 부분열이 있다.
  • 테스트 케이스 2: {1}\{1\}, {3}\{3\}, {0,1}\{0, 1\}, {0,3}\{0, 3\}, {1,2}\{1, 2\}, {2,3}\{2, 3\}, {0,1,2}\{0, 1, 2\}, {0,2,3}\{0, 2, 3\} 여덟 종류의 홀수 부분열이 있다.
  • 테스트 케이스 3: 문제에서 서술한 대로 여덟 종류의 홀수 부분열이 있다.

예제1

  1. 예제 1

    입력
    3
    3
    3 3 6
    4
    0 1 2 3
    5
    3 3 6 8 6
    
    예상 출력
    3
    8
    8