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

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

Exp

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

요약
n마리의 몬스터를 차례로 잡으며 각 몬스터가 i(0 이상 k 이하)의 경험치를 확률 p_i로 주고 총 경험치가 x를 넘으면 x로 잘릴 때, 잘린 총 경험치의 기댓값을 998244353으로 나눈 나머지로 구한다.
난이도

어려움10점 중 8점

유형
확률, 동적 계획법, 수학, 누적 합
정답자
아직 제출이 없습니다

문제

용사가 n마리의 몬스터를 차례로 물리칠 때 얻는 경험치의 기댓값을 구하자. 각 몬스터를 물리칠 때 용사는 확률 pip_i로 ii 단위의 경험치를 독립적으로 얻는다 (0≤i≤k0 \le i \le k). 다만 용사가 얻은 경험치의 총합이 xx를 넘으면 경험치는 정확히 xx로 잘린다. 이 기댓값을 998 244 353998\,244\,353으로 나눈 나머지를 출력하라.

입력

첫째 줄에 세 정수 nn, kk, xx가 주어진다 (1≤n≤1071 \le n \le 10^7; 1≤k≤1001 \le k \le 100; 1≤x≤min⁡(107,5⋅107/k)1 \le x \le \min(10^7, 5 \cdot 10^7/k)).

둘째 줄에 k+1k+1개의 실수 p0,p1,…,pkp_0, p_1, \ldots, p_k가 주어진다 (0<pi<10 < p_i < 1). 각 수는 소수점 아래 정확히 4자리로 주어진다. pip_i의 합은 1이다.

출력

용사가 얻을 경험치의 기댓값을 출력하라.

구하는 값을 기약분수 p/qp/q로 나타낼 수 있고 q≢0(mod998 244 353)q \not\equiv 0 \pmod{998\,244\,353}임을 보일 수 있다. 이때 r⋅q≡p(mod998 244 353)r \cdot q \equiv p \pmod{998\,244\,353}이고 0≤r<998 244 3530 \le r < 998\,244\,353인 정수 rr이 유일하게 존재하므로, 이 rr을 출력한다.

힌트

첫 번째 테스트에서 용사는 확률 1/41/4로 경험치 0을, 확률 1/21/2로 경험치 1을, 확률 1/41/4로 경험치 2를 얻는다. 따라서 기댓값은 1이다.

두 번째 테스트에서 용사는 확률 1/41/4로 경험치 0을, 확률 3/43/4로 경험치 1을 얻는다. 기댓값은 3/43/4이다.

예제4

  1. 예제 1

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

    입력
    2 1 1
    0.5000 0.5000
    
    예상 출력
    249561089
    
  3. 예제 3

    입력
    4 2 5
    0.2000 0.5000 0.3000
    
    예상 출력
    909700083
    
  4. 예제 4

    입력
    10 4 23
    0.4533 0.2906 0.1618 0.0071 0.0872
    
    예상 출력
    433575862