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

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

해밍 타원

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

요약
길이 n이고 q개 기호로 이루어진 단어 중 두 초점 단어까지의 해밍 거리 합이 정확히 D인 단어의 수를 구한다.
난이도

보통10점 중 5점

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

문제

기하학에서 타원은 두 초점 f1f_1, f2f_2와 길이 DD로 정의된다. 타원은 d(f1,p)+d(f2,p)=Dd(f_1, p) + d(f_2, p) = D를 만족하는 모든 점 pp의 집합이다.

타원이라고 하면 보통 유클리드 거리를 쓰는 2차원 유클리드 평면 위의 도형을 떠올린다.

이 문제는 다른 종류의 타원을 다룬다. 여기서 쓰는 공간은 서로 다른 기호 qq개로 이루어진 알파벳으로 만든 길이 nn의 단어 전체가 이루는 공간이고, Fqn\mathbb{F}_q^n으로 적는다. qq와 nn이 주어지면 Fqn\mathbb{F}_q^n의 점, 즉 단어는 qnq^n개다.

거리는 해밍 거리를 쓴다. 두 단어 x,y∈Fqnx, y \in \mathbb{F}_q^n 사이의 해밍 거리 dH(x,y)d_H(x, y)는 같은 자리의 기호가 서로 다른 위치의 개수다. 예를 들어 단어 01201과 21210의 해밍 거리는 3이다. 기호가 다른 위치가 세 곳이기 때문이다. Fqn\mathbb{F}_q^n의 두 단어 사이의 해밍 거리는 항상 0 이상 nn 이하의 정수다.

이제 Fqn\mathbb{F}_q^n 안에서 해밍 타원을 dH(f1,p)+dH(f2,p)=Dd_H(f_1, p) + d_H(f_2, p) = D를 만족하는 모든 점 pp의 집합으로 정의한다. qq와 nn, 두 초점 f1f_1과 f2f_2, 거리 DD가 주어질 때 이 해밍 타원 위에 놓인 점 p∈Fqnp \in \mathbb{F}_q^n의 개수를 구하라.

입력

첫째 줄에 세 정수 qq (2≤q≤102 \le q \le 10), nn (1≤n≤1001 \le n \le 100), DD (1≤D≤2n1 \le D \le 2n)가 주어진다.

둘째 줄과 셋째 줄에 두 초점 f1f_1과 f2f_2가 순서대로 주어진다. 두 줄은 모두 숫자 {0,1,…,q−1}\{0, 1, \dots, q-1\}로 이루어진 길이 nn의 문자열이다.

출력

타원 위에 놓인 점의 개수를 정수 하나로 한 줄에 출력한다. 입력은 답이 2632^{63}보다 작도록 주어진다.

예제3

  1. 예제 1

    입력
    3 5 9
    01201
    21210
    
    예상 출력
    24
    
  2. 예제 2

    입력
    4 6 5
    123031
    231222
    
    예상 출력
    0
    
  3. 예제 3

    입력
    2 32 32
    01010101010101010101010101010101
    01010101010101010101010101010101
    
    예상 출력
    601080390