목차

선형 점화식

동차선형점화식

표시하려면 클릭 ⇲

숨기려면 클릭 ⇱

최신 정보가 반영되지 않은 내용이므로. 그점에 유의해서 참고용으로만 볼것

  • (!)k가 큰 경우에는 키타마사법을 사용해서 O(k^2logn)에 풀수 있다. 유도 과정은 좀더 복잡하지만, 최종 구현은 오히려 행렬 거듭제곱보다도 심플하다. k가 작은경우에도 그냥 이 방법을 쓰는게 행렬 연산 구현하는 것보다 코드도 짧고 속도도 빠르다!!
  • k가 많이 큰 경우에는 키타마사법을 FFT를 이용해서 구현해야 한다.
    • 백준 문제 기준으로는, FFT를 이용하지 않는 키타마사법으로 풀리는 문제들은 k=1000 정도의 크기를 갖고, 다이아몬드4 의 기본 난이도로 책정된다
    • FFT를 이용하는 키타마사법으로만 풀리는 문제들은 k>=10000 정도의 크기를 갖고, 다이아몬드1 의 기본 난이도로 책정된다
    • 파이썬으로 FFT를 이용하지 않는 키타마사법을 구현했을때에는, pypy로 제출해야만 k=1000 크기의 문제를 풀수 있다.
    • 다항식 나눗셈을 다항식 곱셈으로 바꿔서 계산하는 로직, FFT를 이용한 다항식 곱셈로직 등등 구현할것이 많다.
  • 최종 구현은, FFT를 이용하지 않는 키타마사법과, FFT를 이용하는 키타마사법의 두가지를 구현하기로 했다. k⇐5 정도의 일반적인 문제는 비FFT 키타마사로 풀고, 원래 c언어 기준으로 비FFT 키타마사 풀이를 의도한 k>=1000 정도의 문제는 FFT 키타마사로 풀도록 하자.

.

행렬 거듭제곱을 이용한 풀이

키타마사법

보스탄-모리 알고리즘

코드

관련 문제

연립선형점화식

선형 동차 점화식을 찾기