Game of RUN

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

요약
길이 n인 1차원 바둑판에서 같은 색 돌의 모든 그룹이 빈 칸과 이웃하는 상태의 수를 세어 1e9+7로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

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

문제

Game of RUN은 Game of Go(바둑)와 비슷하지만 2차원의 정사각형 격자 대신에 1차원 격자를 사용하는 2인용 게임이다.

Game of RUN의 규칙은 다음과 같다.

  • 두 플레이어가 번갈아서 흑돌 또는 백돌을 격자 위에 원하는 만큼 놓는다. 00개를 놓는 것도 허용된다.
  • 한 가지 색깔의 돌이 1칸 이상의 연속한 구간을 차지할 때 그 구간 전체를 그룹이라고 하자. 흑돌 3개가 연달아 놓여 있다면 그 중 흑돌 2개나 1개만을 포함하는 구간은 그룹이 아니다. 이때, 모든 그룹은 적어도 하나의 빈 칸과 이웃하고 있어야 한다. 예를 들어, 아래와 같은 경우들은 각각 흑돌의 그룹과 백돌의 그룹이 빈 칸과 이웃하고 있지 않으므로 올바른 게임 상태가 아니다.

길이 nn인 게임판에서 가능한 모든 서로 다른 게임 상태의 수를 10000000071 000 000 007로 나눈 나머지를 구하시오.

입력

첫 번째 줄에 테스트 케이스의 개수 TT가 주어진다.

그다음 TT줄에 걸쳐서 정수 nn의 값이 한 줄에 하나씩 주어진다.

출력

각 테스트 케이스에 대해 문제의 정답을 한 줄에 출력한다.

제한

  • 1≤T≤100001\le T\le 10 000
  • 1≤n≤10000001\le n\le 1 000 000

예제1

  1. 예제 1

    입력
    4
    1
    2
    5
    10
    
    예상 출력
    1
    5
    113
    18413