1 条题解

  • 0
    @ 2025-10-8 16:55:41
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const int N = 110000;
    LL a[N], s[N];
    int n, F;
    bool pd(LL x)
    {
        s[0] = 0; for(int i = 1; i <= n; i++) s[i] = s[i-1] + a[i] - x;
        LL v = LL(1) << 62;
        for(int i = F; i <= n; i++)
        {
            v = min(v, s[i - F]);//v= min( s[0].. s[i-F] ) 
            if( s[i] - v >= 0 ) return true;
        }
        return false;
    }
    int main()
    {
        scanf("%d%d", &n, &F);
        LL l = 0, r = 0;
        for(int i = 1; i <= n; i++) scanf("%lld", &a[i]), a[i] = a[i] * 1000, r += a[i];
        LL ans = -1;
        while(l <= r)
        {
            LL mid = (l + r) / 2;
            if( pd(mid) ){ ans = mid; l = mid + 1;}
            else r = mid - 1;
        }
        printf("%lld\n", ans);
        return 0;
    }
    
    • 1

    *【二分】平均值最大(长度≥L)[USACO03MAR] Best Cow Fences G

    信息

    ID
    1126
    时间
    200ms
    内存
    64MiB
    难度
    8
    标签
    递交数
    419
    已通过
    76
    上传者