NP-Hard? NP-Complete?

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

요약
소수 P와 큰 N, K가 주어질 때 C(N,i)가 P^K로 나누어떨어지지 않는 i의 개수를 구한다.
난이도

어려움10점 중 8점

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

문제

NP-Hard와 NP-Complete가 무엇인지 아는가?

익명을 요구한 MatKor 출제/검수진 누군가는 다음과 같이 대답했다.

양의 정수 NN과 소수 PP가 주어질 때, (Ni)≡0(modP)\binom{N}{i}\equiv 0\pmod P를 만족하는 00 이상 NN 이하의 정수 ii의 개수를 구하는 문제는 너무 쉽게 풀리므로, NP-Complete이다. 이제 음이 아닌 정수 KK를 하나 더 입력으로 주어, (Ni)≡0(modPK)\binom{N}{i}\equiv 0\pmod{P^K}를 만족하는 00이상 NN이하의 정수 ii의 개수를 구해보자.

입력

첫 번째 줄에 테스트 케이스의 개수 T(1≤T≤1,000)T(1\le T\le 1\\, 000)이 주어진다.

두 번째 줄부터 TT 줄에 걸쳐 양의 정수 N(1≤N≤1018)N(1\le N\le 10^{18})과 소수 P(2≤P≤1018)P(2\le P\le 10^{18}), 정수 K(0≤K≤1018)K(0\le K\le 10^{18})이 공백으로 구분되어 주어진다.

출력

첫 번째 줄부터 TT 줄에 걸쳐 각 테스트 케이스 별로 문제의 정답을 한 줄에 한 개씩 출력한다.

예제1

  1. 예제 1

    입력
    11
    4 2 0
    4 2 1
    4 2 2
    25 3 1
    26 3 1
    27 3 1
    25 3 2
    26 3 2
    27 3 2
    27 3 3
    27 3 4
    
    예상 출력
    5
    3
    2
    8
    0
    26
    2
    0
    24
    18
    0