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

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

용감한 유니콘 탐험가들

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

요약
1부터 n까지의 정수로 이루어진 순증가 수열 중 연속한 세 원소의 XOR이 0이 아닌 것의 개수를 998244353으로 나눈 나머지를 구한다.
난이도

어려움10점 중 9점

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

문제

당신은 비밀 마법 결사 BSU(Brave Seekers of Unicorns)의 일원이다. BSU는 유니콘을 찾는 것을 좋아한다. 최근 BSU는 kk개의 정수로 이루어진 배열 a1,a2,…,aka_1, a_2, \ldots, a_k가 다음 조건을 모두 만족할 때 이 배열을 유니콘이라고 부르기로 했다.

  • 배열은 비어 있지 않다 (k>0k > 0).
  • 연속한 세 원소의 비트 XOR이 0인 경우가 없다 (1≤i≤k−21 \le i \le k - 2인 모든 ii에 대해 ai⊕ai+1⊕ai+2≠0a_i \oplus a_{i+1} \oplus a_{i+2} \ne 0).
  • 배열은 순증가한다 (1≤i≤k−11 \le i \le k - 1인 모든 ii에 대해 ai<ai+1a_i < a_{i+1}).
  • 배열의 원소는 11 이상 nn 이하의 정수다 (1≤i≤k1 \le i \le k인 모든 ii에 대해 1≤ai≤n1 \le a_i \le n).

예를 들어 n=10n = 10일 때 배열 [1,4,5,9][1, 4, 5, 9]는 1⊕4⊕5=01 \oplus 4 \oplus 5 = 0이므로 유니콘이 아니지만, 배열 [2,4,7,9][2, 4, 7, 9]는 유니콘이다.

BSU의 대마법사가 당신에게 유니콘의 개수를 계산하라고 명령했다. 개수가 매우 클 수 있으므로 998 244 353998\,244\,353으로 나눈 나머지를 구해야 한다.

입력

첫째 줄에 정수 nn이 주어진다 (1≤n≤1061 \le n \le 10^6).

출력

유니콘의 개수를 998 244 353998\,244\,353으로 나눈 나머지를 출력한다.

예제5

  1. 예제 1

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

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

    입력
    3
    
    예상 출력
    6
    
  4. 예제 4

    입력
    5
    
    예상 출력
    26
    
  5. 예제 5

    입력
    322
    
    예상 출력
    782852421