엉엉이의 저주 탈출

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

요약
턴 수 N과 상수 M이 주어질 때 원 분할 조각 수의 홀짝 게임에서 현철이가 이길 확률을 10^9+7로 나눈 나머지로 구한다.
난이도

어려움10점 중 8점

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

문제

엉엉이의 저주, 멈뭄미믜 저주, 섯섯시싀 저주에 차례로 걸렸었던 현철이는 섯섯시싀 저주, 멈뭄미믜 저주를 무사히 풀어내고 이제 마지막 관문인 엉엉이의 저주만 남겨두고 있다.

엉엉이는 현철이와 한 원 위에서 하는 게임인 엉엉이 게임을 제안했다. 엉엉이는 자신이 게임을 제안한 만큼, 게임의 공정성을 위해 자신에게 패널티를 부여하기로 했다. 이로 인해 현철이는 최적의 전략으로 플레이할 수 있지만 엉엉이는 모든 행동을 랜덤하게 진행한다. 구체적으로 엉엉이 게임은 다음과 같이 진행된다.

  • 엉엉이 게임은 총 NN턴 동안 진행된다. 첫 번째 턴을 시작하기 전, 게임의 턴 수 NN과 게임 상수 MM을 정한다. 이때, NN은 11이상의 정수, MM은 33이상의 정수이다.

  • 첫 번째 턴부터 NN번째 턴까지 ii번째 턴에 다음 행동을 진행한다.

    • 현철이는 33이상 MM이하의 정수 t_it\_i를 동일한 확률로 하나 뽑는다.
    • 이어 현철이는 원주 위에 서로 다른 t_it\_i개의 점을 원하는 대로 고르고, 고른 점들을 이어 볼록 t_it\_i각형을 그린다.
    • 엉엉이는 33이상 MM이하의 정수 s_is\_i를 동일한 확률로 하나 뽑는다.
    • 이어 엉엉이는 원주 위에 균일한 확률로 서로 다른 s_is\_i개의 점을 뽑고, 뽑은 점들을 이어 볼록 s_is\_i각형을 그린다.
  • 현철이와 엉엉이는 모든 턴이 종료될 때 까지 서로의 그림을 볼 수 없다. 또한, 모든 턴이 종료될 때까지 서로의 t_it\_i와 s_is\_i를 알 수 없다.

  • 모든 턴이 종료된 후 서로의 그림을 겹친 후, 원이 몇 개의 조각으로 나뉘었는지 확인한다. 이때, 짝수 개의 조각으로 나뉘었다면 현철이가 이기며, 홀수 개의 조각으로 나뉘었다면 엉엉이가 이긴다.

N=2N=2, M=5M=5일 때의 예시이며, 원은 44개의 조각으로 나뉘었다.

위의 그림이 현철이의 최적의 전략이 아닐 수 있다.

게임의 턴 수 NN과 게임 상수 MM이 정해졌을 때, 현철이가 최적의 전략으로 게임을 했을 때 이길 확률을 출력해 보자.

입력

첫 번째 줄에 테스트 케이스의 개수 T(1≤T≤106)T(1\le T\le 10^6)가 주어진다.

다음 TT개의 줄에 걸쳐 게임의 턴 수와 게임 상수를 나타내는 양의 정수 N(1≤N≤109)N(1\le N\le 10^9)과 M(3≤M≤109)M(3\le M\le 10^9)이 공백으로 구분되어 주어진다.

출력

첫 번째 줄부터 TT개의 줄에 걸쳐 각 테스트 케이스 별로 현철이가 이길 확률을 출력해보자. 단, 정확한 출력을 위해 현철이가 이길 확률을 109+710^9+7로 나눈 나머지를 출력한다.

기약 분수 pq(p≥0,q>0,gcd⁡(p,q)=1)\frac{p}{q}(p\ge 0,q>0,\gcd(p,q) =1)를 MM으로 나눈 나머지는 q−1q^{-1}가 q⋅q−1≡1(modM)q\cdot q^{-1}\equiv 1\pmod M을 만족하는 정수, 즉 qq의 MM에 대한 모듈로 곱셈 역원일 때, p⋅q−1(modM)p\cdot q^{-1}\pmod M로 정의한다. 만약 정수일 경우 q=q−1=1q=q^{-1}=1이므로 p(modM)p\pmod M를 의미한다.

주어진 조건 내에서 정답이 정수 혹은 분모가 109+710^9+7의 배수가 아닌 유리수로 나타내어짐을 증명할 수 있다.

예제1

  1. 예제 1

    입력
    6
    1 3
    1 4
    1 5
    4 5
    123456789 987654321
    987654321 123456789
    
    예상 출력
    0
    500000004
    444444448
    61728396
    980193516
    48611749