만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

주사위 게임

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

요약
n면 주사위가 주어질 때, 두 번째 던진 값을 첫 값과 XOR할지 고르는 게임에서 두 사람이 최적으로 둘 때의 기댓값을 998244353으로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

유형
확률, 비트 연산, 수학
정답자
아직 제출이 없습니다

문제

푸타타와 부다다는 면이 nn개인 주사위로 게임을 한다. 00부터 n−1n-1까지의 정수가 각각 정확히 한 면에 적혀 있고, 각 면이 위를 향할 확률은 모두 같다. 즉, 주사위를 던지면 00부터 n−1n-1까지의 정수 중 하나가 균등한 확률로 나온다.

게임은 두 라운드로 진행된다. 첫 번째 라운드에서 푸타타가 주사위를 던져 나온 정수를 xx라고 한다.

두 번째 라운드에서 부다다는 다음 중 하나를 선택할 수 있다.

  • 게임을 끝낸다. 이때 점수는 xx이다.
  • 주사위를 한 번 더 던져 나온 값을 yy라고 한다. 게임이 끝나고 점수는 x⊕yx \oplus y이다. 여기서 ⊕\oplus는 비트 단위 배타적 논리합 연산이다.

푸타타와 부다다는 점수를 최대화하려 하며, 항상 최선의 선택을 한다. 주어진 nn마다 게임 점수의 기댓값을 구하라.

답은 기약분수 xy\frac{x}{y}로 나타낼 수 있으며, y≢0(mod998 244 353)y \not\equiv 0 \pmod{998\,244\,353}이다. 0≤a<998 244 3530 \leq a < 998\,244\,353이고 a⋅y≡x(mod998 244 353)a \cdot y \equiv x \pmod{998\,244\,353}을 만족하는 정수 aa를 출력하라.

입력

첫 줄에 정수 TT (1≤T≤1041 \leq T \leq 10^4)가 주어진다. 이어지는 TT개의 줄에는 각각 정수 nn (1≤n≤998 244 3521 \leq n \leq 998\,244\,352)이 하나씩 주어진다.

출력

TT개의 줄을 출력한다. ii번째 줄에는 ii번째 질문의 답을 출력한다.

예제1

  1. 예제 1

    입력
    4
    1
    2
    3
    4
    
    예상 출력
    0
    249561089
    776412276
    2