B 아름다움보다 여덟 번째 필드보다 여름 학교 떨어져 2019 소 값 (법)

원래의 질문에 링크 : 뷰티 값

질문의 의미 : 당신의 하위 간격의 모든 다른 숫자의 합계의 수를 찾을 수 있도록, 당신에게 순서를 제공하는
사고 나 같은 어떤 사람들은 회장 통계 간격 (다른 종류의 수를 계산 처음의 생각을 잘에 .. : 내가) 할 때, 그러나 거기 가고 싶어하지 않습니다 말을하는 방법을 통해 순위에 많은 사람들을보고, 확실히 패턴이 존재합니다.
I 영역이 상이한 회수의 분석에 공헌 범위 간격의 개수를 발견했다. 예를 들어 1,213 견본 우리는 간격 [2,4]를 그 하위 범위에서 두번째 통계적 기여도의 수가 고려 될 때 볼
그 오른쪽에서 동일한 숫자와 연산자 그 좌측 단부의 큰 섹션 기여 (1 다른 부분에 영향을주지 않습니다), 우리는이 게시물은 더 큰 범위를 찾을 것이라고 생각, 예를 들어, [1,4]에 기여 고려되어야 사람.

사실, 우리는 생성 된 값의 좌단 또는 우단 범위 기여로 간주 될 수있다. 우리의 기여를 제조하는 프레스를 고정 가장 왼쪽 (않도록 통계를 반복하지 않음)
즉, 간격 [I + 1, N]의 범위에 기여하는 위치 POS의 값은 (i 발생하는 위치이고, n은 길이이다). 그런 다음 하위 간격의 수를 계산합니다. 따라서, 우리가 계산 한 값을 1,213 기여 표시, 즉 [1,2,4] 번째의 [2,3], [3,4], [3,3]

그래서 우리는 [POS, N]의 우측 엔드 포인트 사이의 [I + 1, POS]에서 브레이크 포인트의 바로 왼쪽을 찾을 수 있습니다. 내가) * (N - - 첨자 I 녹화를 시작하고 1 곳 POS 1) // 왼쪽 엔드 포인트를 0으로 설정 + 그래서 결국 우리는 관계 :( POS를 얻을 수 있습니다

나는이 닭 요리가 너무 간단 추정 ... TAT 자세한 설명이 쓴 넣어 것처럼

암호:

#INCLUDE <. 비트 / stdc ++ H>
 #DEFINE가 긴 긴 것이다
 사용  스페이스 성병;
CONST의  INT maxn 1E5 + = 5 ; 
[maxn] 도착 LL; 
INT CUR [maxn]; 
; ANS LL 
INT 의 main () {
     INT의 N; 
    CIN >> N;
    위한 ( int로 난 = 1 ; i가 N = <; 내가 ++ ) { 
        CIN >> , 언 [I]; 
    } 
    LL의 L; 
    ANS = 0 ; 
    memset 함수 (현재, 0 , 는 sizeof (현재));
    대한 (int로 I = 1 ; i가 <= N; 내가 ++ ) { 
        ANS + = (LL) (I-CUR [도착 [I]) * (N-I + 1 ); 
        CUR [도착 [I] = I; 
    } 
    COUT << ANS << ENDL;
    반환  0 ; 
}

 

추천

출처www.cnblogs.com/Tianwell/p/11367072.html