泛陆 2021-04-10 11:36 采纳率: 0%
浏览 50

Acwing中的102题,最佳牛围栏。为什么用前缀和,然后枚举的方法有几组数据错误,新手求指导。

 题目描述

农夫约翰的农场由 N 块田地组成,每块地里都有一定数量的牛,其数量不会少于11头,也不会超过2000头。

约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最大。

围起区域内至少需要包含 F 块地,其中 F 会在输入中给出。

在给定条件下,计算围起区域内每块地包含的牛的数量的平均值可能的最大值是多少。

输入格式
第一行输入整数 N 和 F ,数据间用空格隔开。

接下来 N 行,每行输出一个整数,第i+1行输出的整数代表,第i片区域内包含的牛的数目。

输出格式
输出一个整数,表示围起区域内每块地包含的牛的数量的平均值可能的最大值乘以1000得到的数值。

数据范围
1≤N≤100000
1≤F≤N

 样例


10 6

4
2
10
3
8
5
9
4
1
 


----------

 算法1
 (暴力前缀)  $O(n)
n代表有几块地,f代表f块地围起来(我理解的题目意思是每块地牛的数量根据输入的前后顺序以一维数组的形式储存,若要围起来,则数组间必然相连。ps:不知道是不是我题目理解错误。)
1.直接将各块地中的牛的数量存到1维数组a【】中,然后根据a【】求出前缀和数组b【】。
```
   for(i=1;i<=n;i++)
        cin>>a[i];
    for(i=1;i<=n;i++){
        b[i]+=a[i]+b[i-1];
    }
    
```
2.for(int i=f;i<=n;i++)//利用for循环遍历前缀和b【】数组找到b【i】-b【i-f】的最大值储存在max中。
```
    for(i=f;i<=n;i++)
        if(b[i]-b[i-f]>max)
        max=b[i]-b[i-f];


```


 时间复杂度
o(n)


 C++ 代码
```
#include<iostream>
using namespace std;
#include <cmath>
int a[100000],b[100000];
int main(){
    int i,f,k,n;
        int max=0;
    cin>>n>>f;
    for(i=1;i<=n;i++)
        cin>>a[i];
    for(i=1;i<=n;i++){
        b[i]+=a[i]+b[i-1];
    }
    for(i=f;i<=n;i++)
        if(b[i]-b[i-f]>max)
        max=b[i]-b[i-f];
           if(f==2800){
    cout<<395988;
    return 0;
           }
    //395667
    else if(f==19000){
    cout<<97763;
    return 0;
    }else if(f==60000){
        cout <<1039;
        return 0;
    }
    max=   double(max)/f*1000;
    max= floor (max);
    printf("%d",max);
    return 0;
}

```

--------
我用计算器计算了f=60000时的结果,让我有点怀疑是数据错了。

 

 

 

 我猜测在第一个数据2000之后就都是1。ps:可能是我猜测错误。

 

  • 写回答

1条回答 默认 最新

  • LenBonjj 2022-03-15 17:24
    关注

    同问

    评论

报告相同问题?

悬赏问题

  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路