"이분법 대답"평균

평균

원래의 질문에 링크 : 평균

효과에 따라

당신 길이 \ (N- \) 시리즈의, 문자열, 최대 등의 문자열 평균의 컬럼의 수와 문자열의 길이 식별 \을 (> = m \)

문제에 대한 주제 솔루션

숫자 이론 및 숫자 이론에 태그를주는 이유는 무엇 반 푼도 볼 수 없습니다 ... 모른다 ...

아주 간단한 질문은, 등 우리가 수익을 증대 할 수 있습니다으로 0보다 큰이 감산 각 번호, 절반의 평균 크기는 어떻게 문자열의 길이의 변화를 다루는? 사용하고 같은 접두사 모양을 유지하기 위해 매우 간단합니다

다음 코드는(스파이크 제목)

//#define fre yes

#include <cstdio>
#include <iostream>

const int N = 100005;
int arr[N]; double sum[N];

int n, m;

bool check(double avg) {
    for (int i = 1; i <= n; i++) {
        sum[i] = sum[i - 1] + (arr[i] - avg);
    }

    double minv = 0;
    for (int i = 0, j = m; j <= n; j++, i++) {
        minv = std::min(minv, sum[i]);
        if(sum[j] - minv >= 0) return true;
    } return false;
}

int main() {
    scanf("%d %d", &n, &m);
    double l = 0, r = 0;
    for (int i = 1; i <= n; i++) {
        scanf("%d", &arr[i]);
        r = std::max(r, (double)arr[i]);
    }

    while(r - l > 1e-5) {
        double mid = (l + r) / 2;
        if(check(mid)) l = mid;
        else r = mid;
    } printf("%d\n", (int)(r * 1000));
    return 0;
}

추천

출처www.cnblogs.com/Nicoppa/p/11504746.html