2019 멀티 - 대학 교육 경연 대회 7 Kejin 플레이어 (期望)

질문의 의미 : 다음 실패 할 수 있습니다 각각의 업그레이드를 업그레이드하기 위해 필요한 지출의 현재 수준을 감안할 때이 L에서 R-수준의 지출 기대 Q 시간 문의를 수준

아이디어는 : 하나의 업그레이드는 우리가 방정식을 나열 할 수 있습니다 기대합니다 :

그래서 우리는 통계 접두사보고 모든 문의 O1에 응답 할 수 있습니다

#INCLUDE <비트 / stdc ++ H.>
 사용  스페이스 성병;
CONST  이중 PI ACOS = (- 1.0 );
CONST의  INT N = 5e5 + (7) ;
CONST  INT INF = 0x3f3f3f3f ;
CONST   EPS 1e- = 6 ; 
타입 정의  LL;
CONST LL 모드 1E9 + = 7 ; 
LL의 DP [N], R [N], S [N], X [N], A [N]; 
LL의 q_pow (LL 않음하는 LL) { 
    LL ANS = 1 ; LL의 염기 = a 및
    동안 (N) {
         만약(n은 1 ) = ANS (ANS * 기재 ) %의 모드;
        염기 = 베이스 * 베이스 %의 모드; 
        N >> = 1 ; 
    } 
        반환 ANS; 
} 
LL의 반전 (LL A, LL의 b) { 
    복귀 q_pow (a, B- 2 ); 
} 
INT 주 () { 
    IOS :: sync_with_stdio ( 거짓 ); 
    cin.tie ( 0 ); cout.tie ( 0 );
    INT의 t; 
    CIN >> t;
    반면 (t-- ) {
         INTN, Q; CIN >> >> N Q;
        위한 ( int로 I = 1 ; i가 <= N; 내가 ++ ) { 
            CIN >> R [I] >> S [I] X >> [I] >> A [I]; 
        } 
        에 대해 ( int로 난 = 1 난 ++; i가 N = < {) 
            [I DP를 + 1 ] = (S [I]가 * ((DP [I]는 [I]) %의 모드) %의 mod-을 + (S [ I] -r [I]) * DP % 개조 [X [내가] + % 개조 모드) %의 개조에서의 INV * (R [i]를, 모드) % 개조; 
        } 
        에 대해 ( int로 I = 1 ; I <= Q; I ++ ) {
             INT의 L, R; 
            CIN >> >> L , R; 
            COUT<< (DP [R] -dp [L] + 개조) << %의 개조 ENDL 단계; 
        } 
    } 
}

 

추천

출처www.cnblogs.com/wmj6/p/11345353.html