본문 바로가기

분할 정복을 이용한 거듭제곱/정수 거듭제곱

(44)
백준 30521번: Mike Sees The Storm (Large) https://www.acmicpc.net/problem/30521 30521번: Mike Sees The Storm (Large) $N=2$, $K=2$일 때 Mike가 얻을 수 있는 수열의 목록은 [$-1, -2, -1, 0$], [$-1, 0, -1, 0$], [$-1, 0, 1, 0$], [$1, 2, 1, 0$], [$1, 0, 1, 0$], [$1, 0, -1, 0$] 총 $6$가지로, 최댓값의 $K$제곱을 합하면 $7$이다. www.acmicpc.net 카탈란 수의 응용입니다. 먼저 주어진 문제를 격자 속의 최단 경로 문제로 환원합니다. 칠판에 적힌 숫자를 $a$에서 $a-1$ 로 바꾸는 연산을 오른쪽으로 한 칸 이동하는 것으로, $a$에서 $a+1$로 바꾸는 연산을 위로 한 칸 이동하는 것..
백준 30354번: Sum of Product of Binomial Coefficients https://www.acmicpc.net/problem/30354 30354번: Sum of Product of Binomial Coefficients You are given integers $N$ and $K$. For a positive integer $k$, $f(k)$ is defined as follows. The Sum of $\binom{N}{a_1} \times \binom{a_1}{a_2} \times \cdots \times \binom{a_{k-1}}{a_k}$ for all integer sequences $(a_1, a_2, \dots, a_k)$ that satisfy the www.acmicpc.net 문제의 설명을 읽어봤을 때, 진짜 모든 $a_{1}$ 부터 $a_{k}$..
백준 30169번: Primes and Multiplication https://www.acmicpc.net/problem/30169 30169번: Primes and Multiplication In the first example, $f(10, 1) = g(1, 2) \cdot g(1, 5) = 1$, $f(10, 2) = g(2, 2) \cdot g(2, 5) = 2$. In the second example, actual value of formula is approximately $1.597 \cdot 10^{171}$. Make sure you print the answer modulo $(10^{9} + 7)$. In the third www.acmicpc.net 문제에서 나오는 $f(x,y)$와 $g(y,p)$의 정의를 잘 관찰해보면, $$ \prod_{i..
백준 27743번: 어려운 하노이 탑 https://www.acmicpc.net/problem/27743 27743번: 어려운 하노이 탑 하노이 탑은 다음 규칙을 지키면서, 첫 번째 막대기에 꽂힌 원판들을 그 순서 그대로 세 번째 막대기로 옮기는 놀이다. 한 번에 $1$개의 원판만 옮길 수 있다. 가장 위에 있는 원판만 이동할 수 있 www.acmicpc.net $N=4$, $M=3$ 정도인 상황을 시뮬레이션 돌려보면 감을 잡을 수 있습니다. 우선, 각 기둥을 왼쪽에서부터 peg 1, 2, 3 이라고 하겠습니다. 그리고 크기 $N$의 원판이 번호 $1$부터 $M$에 대해 내림차순으로 쌓인 상황을 $N \downarrow$로 표현하겠습니다. 다시 말해 문제에서 주어진 초기 상황이 다음과 같이 표현된다는 뜻입니다. $$ \begin{matrix..
백준 28294번: 프랙탈 https://www.acmicpc.net/problem/28294 28294번: 프랙탈 첫째 줄에 정수 $N$, $a$가 공백으로 구분되어 주어진다. $(3 \le N \le 10^9; 1 \le a \le 10^9)$ www.acmicpc.net 단계별로 도형의 둘레를 구해보며 접근하면 규칙이 바로 나오는 문제입니다. 아무 과정도 거치지 않은 상태의 둘레의 길이는 $N \times N^{a}$ 입니다. 그 다음, 한 변이 $N^{a-1}$인 도형을 그리면, 증가하는 둘레의 길이는 $N \times (N-2)N^{a-1}$ 입니다. 3단계에서 증가하는 둘레의 길이는 $N \times (N-1) \times (N-2)N^{a-2}$ 입니다. 4단계에서 증가하는 둘레의 길이는 $N \times (N-1)^..
백준 27875번: 파이파이 https://www.acmicpc.net/problem/27875 27875번: 파이파이 첫째 줄에 $n$이 주어진다. $(1\le n \le 314\,159)$ www.acmicpc.net 인터넷 검색으로 어떻게든 레퍼런스를 찾기만 하면 매우 쉬워지는 문제였습니다. 일반적으로 어떤 실수 $x$의 소수점 아래 $N$번째 수를 구하기 위해서는 $10^{N} \times x$을 관찰합니다. 이 문제에서 $\pi ^{2}$의 소수점 아래 $N$번째 수는, 16진법이므로, $16^{N} \times \pi ^{2}$를 얻어야 할 것입니다. 여기서 $\pi ^{2}$의 16진법 표현을 얻는 방법이 문제의 핵심이었습니다. $\pi$의 16진법 표현을 안다면 어쩌면 가능할 수도 있습니다만 소스 코드 길이 제한에 걸..
백준 27318번: 세상에서 가장 달달한 디저트 만들기 (integer) https://www.acmicpc.net/problem/27318 27318번: 세상에서 가장 달달한 디저트 만들기 한별이는 튀르키예와 그리스의 전통 젤리인 로쿰을 만들고 있다. 로쿰은 녹말, 물, 설탕, 레몬즙 등을 냄비에 넣고 끓여서 걸쭉해질 때까지 저어준 다음, 겉에 슈가파우더를 뿌려서 굳히는 디저 www.acmicpc.net 행렬 거듭제곱이 더 떠올리기 쉬운 풀이같긴 한데, 일반항을 구해서 풀 수 있는 문제이므로 일반항을 구하는 방법도 소개합니다. 이 글에서 $$V(N,M) = (12N-16)^{M}$$ 이고 $$S(N,M) = (4N-4) \times S(N,M-1) + (24N-48) \times V(N,M-1)$$ 이라는 걸 이미 설명했으니, 해당 지점부터 이어가겠습니다. 덧붙여, $$V(..
백준 25028번: Fully Generate https://www.acmicpc.net/problem/25028 25028번: Fully Generate 양의 정수 만으로 이루어진 단조 증가 수열 $G$가 있다. 이 수열에서 $G_i$는 $i$가 $1$ 이상의 정수일 때 정의되며, $G$에서 $i$가 등장하는 횟수를 나타낸다. 정확히 말하면, $G$는 $i$가 $G_i$번 나타나 www.acmicpc.net 풀이를 설명하기가 상당히 난해한 문제라고 생각합니다. 우선, 글에 나오는 수열은 Golomb Sequence 등으로 불리며 Wikipedia, OEIS에 문서가 있습니다. 가장 단순한 풀이는 물론 $G_{i}$를 모두 구하는 것입니다. 이는 append같은 메서드를 지원하는 컨테이너를 써서 쉽게 구현할 수 있는데, space complexity..