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

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

피보나치의 악몽

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

요약
이전 두 항을 무작위로 골라 더해 만든 수열에서 n번째 항의 분산을 10^9+7로 나눈 나머지를 구한다.
난이도

어려움10점 중 8점

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

문제

무작위 선형 재귀 수열(random linear recursive sequence, RLRS)을 다음과 같이 생성되는 확률변수 수열 a0,a1,…a_0, a_1, \ldots로 정의한다. 먼저 a0=1a_0 = 1이다. 그다음 n=1,2,…n = 1, 2, \ldots 각각에 대해 [0;n−1][0; n-1]에서 정수 ii와 jj를 독립적으로, 그리고 균등한 확률로 선택하고 an=ai+aja_n = a_i + a_j로 둔다. 이때 a0,…,an−1a_0, \ldots, a_{n-1}의 값은 이미 정해져 있다.

예를 들어 a1=a0+a0=2a_1 = a_0 + a_0 = 2이고, a2a_2는 a0+a0a_0 + a_0, a0+a1a_0 + a_1, a1+a0a_1 + a_0, a1+a1a_1 + a_1 각각이 될 확률이 같으므로 25% 확률로 22, 50% 확률로 33, 25% 확률로 44이다. 그다음 a3a_3은 a0+a0a_0 + a_0, a0+a1a_0 + a_1, a0+a2a_0 + a_2, a1+a0a_1 + a_0, a1+a1a_1 + a_1, a1+a2a_1 + a_2, a2+a0a_2 + a_0, a2+a1a_2 + a_1, a2+a2a_2 + a_2 중 하나를 같은 확률로 선택한 값이다. 이후도 같은 방식으로 이어진다.

RLRS의 nn번째 항의 분산을 구하시오.

확률변수 XX의 분산은 Var(X)=E(X−E(X))2\mathbf{Var}(X) = \mathbf{E}(X - \mathbf{E}(X))^2로 정의한다. 여기서 E(X)\mathbf{E}(X)는 확률변수 XX의 기댓값 또는 평균이다.

입력

첫 줄에 정수 nn이 주어진다 (0≤n≤1060 \leq n \leq 10^6).

출력

ana_n의 분산을 기약분수로 나타냈을 때 U/VU/V라 하자. 즉 UU와 VV는 정수이고 V>0V > 0이며 UU와 VV의 최대공약수는 11이다. X=(U⋅V−1) mod (109+7)X = (U \cdot V^{-1}) \bmod (10^9 + 7)을 출력한다. 다시 말해 XX는 109+710^9 + 7을 법으로 VX≡UVX \equiv U를 만족해야 한다. 그러한 XX가 존재하며 0≤X<109+70 \leq X < 10^9 + 7 범위에서 유일함이 보장된다.

힌트

a1a_1은 항상 22이므로 Var(a1)=0\mathbf{Var}(a_1) = 0이다.

Var(a2)=12\mathbf{Var}(a_2) = \frac{1}{2}이다.

Var(a5)=26336\mathbf{Var}(a_5) = \frac{263}{36}이다.

예제3

  1. 예제 1

    입력
    1
    
    예상 출력
    0
    
  2. 예제 2

    입력
    2
    
    예상 출력
    500000004
    
  3. 예제 3

    입력
    5
    
    예상 출력
    305555565