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

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

자릿수 합이 제한된 배수 세기

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

요약
길이가 N인 숫자열 가운데 P로 나누어떨어지고 자릿수의 합이 M 이하인 것의 개수를, 각 M마다 998244353으로 나눈 나머지로 구한다.
난이도

어려움10점 중 9점

유형
동적 계획법, 조합론, 수학, 행렬
정답자
아직 제출이 없습니다

문제

각 자리에 0부터 9까지의 숫자를 놓아 만든, 길이가 NN인 수를 생각한다. 맨 앞자리가 0이어도 된다.

이런 수 가운데 PP로 나누어떨어지고 자릿수의 합이 MM 이하인 것이 몇 개인지 센다. M=0M = 0부터 M=Mmax⁡M = M_{\max}까지 각각의 개수를 998244353으로 나눈 나머지를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 NN, PP, Mmax⁡M_{\max}가 공백으로 구분되어 주어진다. (1≤N≤1091 \le N \le 10^9, 1≤P≤501 \le P \le 50, 1≤Mmax⁡≤5001 \le M_{\max} \le 500)

출력

첫째 줄에 정수 Mmax⁡+1M_{\max} + 1개를 공백으로 구분해 출력한다. 앞에서부터 차례대로 M=0,1,…,Mmax⁡M = 0, 1, \ldots, M_{\max}일 때의 답이다.

힌트

N=2N = 2, P=3P = 3일 때 조건을 만족하는 수는 다음과 같다.

  • M=0M = 0: 00
  • M=1M = 1: 00
  • M=2M = 2: 00
  • M=3M = 3: 00, 03, 12, 21, 30

N=2N = 2, P=4P = 4일 때는 다음과 같다.

  • M=0M = 0: 00
  • M=1M = 1: 00
  • M=2M = 2: 00, 20
  • M=3M = 3: 00, 12, 20
  • M=4M = 4: 00, 04, 12, 20, 40

예제2

  1. 예제 1

    입력
    2 3 3
    
    예상 출력
    1 1 1 5
    
  2. 예제 2

    입력
    2 4 4
    
    예상 출력
    1 1 2 3 5