cf1009E : 원하는 더 어려워 난 단락하고자하지만, 각 부분을 개별적으로 합산하도록 단독으로 각 세그먼트를 검색하는 것이 바람직가 비교적 용이하고, 총합
E [I] = A1 * 1/2 + 1/4 * A2 + ... + 1/2 ^ (I-1) * AI-1 + 2 ^ (I-1) * AI, E [1- N은 상기 재귀
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#INCLUDE <비트 / stdc ++ H.> 사용 스페이스 성병; #DEFINE이 줄게 긴 긴 CONST의 INT maxn 1E6 + = 10 ; CONST LL 모드 = 998244353 ; INT의 N; LL A [maxn, DP [maxn], P [maxn]; INT 의 main () { CIN >> N; 위한 ( int로 I = 1 (scanf와 단계; 내가 ++; 나는 = N <) " %의 LLD를 " , & A [I]); P [ 0 ] = 1 ; 위한 ( int로 I = 1 P [I] = P [I-; I ++는, 난 <= N) 1 * 2 %의 모드; DP는 [ 1 ]은 [= 1 * P [N- 1 ] %를 개조하는 단계; 위한 ( int로 I = 2 ; 나는 <= N; 내가 ++ ) { DP [내가] = ((DP [I- 1 ] -a [I- 1 ] * P [NI] %의 모드) %의 개조 + 모드) % 개조 ; DP [내가] = ([I]가 DP + A [i]는 * P [NI] %의 모드) % 개조; } LL ANS = 0 ; 위한 ( int로 난 = 1 ; i가 N = <; 내가 ++ ) ANS = (ANS + DP [I]) % 개조; COUT<< ANS << ' \ n을 ' ; }