zoukankan      html  css  js  c++  java
  • POJ-2018 Best Cow Fences 二分

    题意:找到一个连续区间,区间的长度至少大于f,现在要求这个区间的平均值最大。

    题解:

    二分找答案。

    每次对于2分的mid值, 都把原来的区间减去mid, 然后找到一长度至少为f的区间, 他们的区间和>=0。

    代码:

     1 #include<cstdio>
     2 #include<algorithm>
     3 #include<vector>
     4 #include<queue>
     5 #include<map>
     6 #include<iostream>
     7 #include<cstring>
     8 using namespace std;
     9 #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",stdout);
    10 #define LL long long
    11 #define ULL unsigned LL
    12 #define fi first
    13 #define se second
    14 #define pb push_back
    15 #define lson l,m,rt<<1
    16 #define rson m+1,r,rt<<1|1
    17 #define lch(x) tr[x].son[0]
    18 #define rch(x) tr[x].son[1]
    19 #define max3(a,b,c) max(a,max(b,c))
    20 #define min3(a,b,c) min(a,min(b,c))
    21 typedef pair<int,int> pll;
    22 const int inf = 0x3f3f3f3f;
    23 const LL INF = 0x3f3f3f3f3f3f3f3f;
    24 const LL mod =  (int)1e9+7;
    25 const int N = 1e5 + 100;
    26 int n, f;
    27 int a[N];
    28 LL suf[N];
    29 bool check(int mid){
    30     for(int i = 1; i <= n; ++i)
    31         suf[i] = suf[i-1] + a[i] - mid;
    32     LL minval = 0;
    33     for(int i = f; i <= n; ++i){
    34         minval = min(minval, suf[i-f]);
    35         if(suf[i] - minval >= 0) return true;
    36     }
    37     return false;
    38 }
    39 int main(){
    40     scanf("%d%d", &n, &f);
    41     for(int i = 1; i <= n; ++i)
    42         scanf("%d", &a[i]), a[i] *= 1000;
    43     int l = 0, r = inf;
    44     while(l <= r){
    45         int m = l+r >> 1;
    46         if(check(m)) l = m + 1;
    47         else r = m - 1;
    48     }
    49     printf("%d
    ", l-1);
    50     return 0;
    51 }
    View Code
  • 相关阅读:
    一首诗
    jsp作用域问题
    jsp关于request.setAttribue还有response.addCookie()的两个问题
    编程学习过程记录
    一些关于自己的未来的东西
    requests的post提交form-data; boundary=????
    记录一些爬虫的小细节
    【CSS3】CSS——链接
    【CSS3】CSS——文本
    【CSS3】background-clip与background-origin的联系与区别
  • 原文地址:https://www.cnblogs.com/MingSD/p/9887401.html
Copyright © 2011-2022 走看看