P=p0+p1+⋯+pN라 하자. Ei를 과정이 끝나기 전까지 따스가 i번 방에서 머무르는 시간의 기댓값이라 하고, 편의를 위해 EN+1=0으로 둔다.
i번 문을 기준으로 왼쪽에서 오른쪽으로 통과한 횟수를 Ri, 오른쪽에서 왼쪽으로 통과한 횟수를 Li라 하자. 따스는 처음에는 i번 문의 왼쪽에 있고 마지막에는 오른쪽에 있으므로, 모든 시행에서
Ri−Li=1
이 성립한다.
따스가 i번 방에 있는 매분마다 i번 문을 통해 오른쪽으로 이동할 확률은 Ppi이다. 따라서
E[Ri]=EiPpi.
마찬가지로
E[Li]=Ei+1Ppi.
두 식을 빼면
(Ei−Ei+1)Ppi=1
이므로
Ei−Ei+1=piP
이다.
이를 i부터 N까지 더하고 EN+1=0을 이용하면
Ei=Pk=i∑Npk1
를 얻는다.
따라서 모든 pi의 모듈러 역원을 구한 뒤, 오른쪽에서 왼쪽으로 역원의 누적합을 관리하면 모든 답을 구할 수 있다.
각 역원을 페르마의 소정리로 따로 계산하면 O(Nlog998244353)에 해결할 수 있다. 더 빠르게는 모든 pi의 누적곱을 만든 뒤 전체 곱의 역원을 한 번만 구하고 역순으로 진행하는 일괄 역원 계산을 사용하여 O(N+log998244353)에 해결할 수 있다.
Solution written by GPT5.6