본문 바로가기

전체 글

(117)
백준 11366번: Tons of Orcs, no Fibbin' www.acmicpc.net/problem/11366 11366번: Tons of Orcs, no Fibbin’ The armies of Mordor are fearsome in both stature and numbers. How did they raise such a host in so short a time? It turns out, orcs breed very quickly. For any given year, their population equals the sum of the populations from the previous two years. For www.acmicpc.net 모르도르 (Mordor), 오크 (Orc) 같은 고유명사의 사용으로 보아 반지의 제왕을 패러디한 문제라는 걸 알..
백준 11440번: 피보나치 수의 제곱의 합 www.acmicpc.net/problem/11440 11440번: 피보나치 수의 제곱의 합 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 이 문제 역시 이전의 세 글과 같이 특정 성질을 이용하여 푸는 문제이지만, 그 성질이 비교적 유도가 힘든 것 같습니다. (백준 11443번: 짝수번째 피보나치 수의 합 , 백준 11442번: 홀수번째 피보나치 수의 합 , 백준 2086번: 피보나치 수의 합) 때문에 다른 성질들과는 다르게 이번엔 유도과정을 조금 보여드리려 합니다. $ F_{i}^{2}=F_{i}\times F_{i}=F_{i}\times \left ( F_{i+1}-F_{i-1} \right ) $ 이므로, $ ..
백준 11443번: 짝수번째 피보나치 수의 합 www.acmicpc.net/problem/11443 11443번: 짝수번째 피보나치 수의 합 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 이 문제는 이전글과 거의 비슷한 성질을 활용합니다. (백준 11442번: 홀수번째 피보나치 수의 합) 바로 $ \sum_{i=1}^{n}F_{2i}=F_{2n+1}-1 $ 입니다. 이를 이용하여 구현하면 됩니다. 0번째 피보나치 수에 관한 언급이 있지만 어차피 0이므로 고려하지 않아도 충분합니다. #include typedef struct { long long array[2][2]; } Matrix; Matrix matrix_multiply_modular (Matrix A, M..
백준 11442번: 홀수번째 피보나치 수의 합 www.acmicpc.net/problem/11442 11442번: 홀수번째 피보나치 수의 합 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 이 문제도 이전글(백준 2086번: 피보나치 수의 합) 처럼 특정 성질을 요구합니다. 그러나 한 눈에 알아채기는 사실 쉽지 않을 것 같습니다. 바로, $ \sum_{i=1}^{n}F_{2i-1}=F_{2n} $ 입니다. (이것도 수학적 귀납법을 이용하여 간단히 증명 가능합니다.) 이 성질을 이용하여 다음과 같이 코드를 짜면 충분합니다. #include typedef struct { long long array[2][2]; } Matrix; Matrix matrix_multipl..
백준 2086번: 피보나치 수의 합 www.acmicpc.net/problem/2086 2086번: 피보나치 수의 합 첫째 줄에 a와 b(1≤a≤b≤9,000,000,000,000,000,000)이 주어진다. www.acmicpc.net 이 문제에서 요구하는 피보나치 수의 성질은 사실 다른 문항에 소개되어 있습니다. (백준 11238번: Fibo) 즉, $ \sum_{i = 1}^{n}F_{i}=F_{n+2}-1 $ 입니다. (증명은 수학적 귀납법으로 간단하게 가능합니다.) 이 식을 조금 변형하여 다음과 같이 우리가 원하는 바를 얻을 수 있습니다. $ \sum_{i=a}^{b}F_{i}=\sum_{i=1}^{b}F_{i}-\sum_{i=1}^{a-1}F_{i}=F_{b+2}-F_{a+1} $ 이때 주의해야할 점이 있는데, 만약 $ F_{b..
백준 11238번: Fibo www.acmicpc.net/problem/11238 11238번: Fibo Fibonacci sequence is a well-known integer sequence that has many beautiful properties. Fibonacci sequence is something looks like this 0, 1, 1, 2, 3, 5, 8, 13, 21, … To make it formal, the mathematical term of Fibonacci sequence is define by recurrence www.acmicpc.net 슬슬 지겨워지는 피보나치 수입니다. 본문에서는 피보나치 수를 재귀적으로 구하는 방법, 일반화된 피보나치 수 공식에, 추가적으로 성질 두 가지를 소개하고 ..
백준 11778번: 피보나치 수와 최대공약수 www.acmicpc.net/problem/11778 11778번: 피보나치 수와 최대공약수 첫째 줄에 n과 m이 주어진다. n과 m은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 이제 피보나치 수 자체만을 구하는 게 아니고 조금씩 변형이 되고 있습니다. 이 문제에서는 다음과 같은 성질을 알고 있어야 합니다. $ GCD \left ( F_{a}, F_{b}\right ) = F_{GCD \left ( a, b \right )} $ 최대공약수, GCD를 구하는 방법은 유클리드 호제법을 이용하면 충분합니다. long long GCD (long long x, long long y) { long long temp; while (y > 0) { temp ..
백준 13075번: Fibonacci Sequence www.acmicpc.net/problem/13075 13075번: Fibonacci Sequence The first line of the input includes the number of test cases, 1 ≤ t ≤ 1000. Each test case is a line containing an integer 1 ≤ x ≤ 248. www.acmicpc.net 이전에 올렸던 Immortal Porpoises 문제를 읽고 이 글을 읽어보면 뭔가 기시감이 들 겁니다. T의 범위, X의 범위, 심지어 modulo 값까지 모두 일치합니다. 예제마저도 정확히 똑같은 값으로 주는데요, 이쯤되면 두 문제의 차이는 스토리텔링이 있느냐 없느냐 밖에 없습니다. 일단 코드입니다. #include typedef ..