前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oops的周末一题(兔哥哥儿种花生)

Oops的周末一题(兔哥哥儿种花生)

作者头像
小白学视觉
发布2019-10-24 02:13:39
3290
发布2019-10-24 02:13:39
举报

非常高兴又可以多一块内容了。这里非常感谢“Oops”学弟,特别说明本部分是小白的学弟“Oops”同学独家赞助。也欢迎更多的小伙伴来分享你的学习成果

兔哥哥儿种花生

问题描述

兔哥哥儿在自己的后花园里种了一些花生,也快到了收获的时候了。这片花生地是一个长度为L、宽度为W的矩形,每个单位面积上花生产量都是独立的。他想知道,对于某个指定的区域大小,在这么大的矩形区域内,花生的产量最大会是多少。

Input Format

第1行有2个整数,长度L和宽度W。

第2行至第L+1行,每行有W个整数,分别表示对应的单位面积上的花生产量A( 0≤A<10

)。

第L+2行有2个整数,分别是指定的区域大小的长度a和宽度b。

Output Format

输出一个整数m,表示在指定大小的区域内,花生最大产量为m。

Sample Input

4 5

1 2 3 4 5

6 7 8 0 0

0 9 2 2 3

3 0 0 0 1

3 3

Sample Output

38

样例解析

左上角:38 = (1+2+3) + (6+7+8) + (0+9+2)

数据范围

对于30%的数据: 1≤L,W≤100;

对于100%的数据:1≤L,W≤1000。

全部区域大小满足:1≤a≤L,1≤b≤W。

代码

代码语言:javascript
复制
 1#include<cstdio>
 2#include<cstdlib>
 3#include<iostream>
 4
 5using namespace std;
 6
 7int s[1002][1002],p[1002][1002];
 8
 9int main(){
10    int l,w;
11    cin>>l>>w;
12    int i,j,tmp;
13    for(i=1;i<=l;i++){
14        for(j=1;j<=w;j++){
15            cin>>p[i][j];   
16        }
17    }
18    for(i=1;i<=l;i++){
19        for(j=1;j<=w;j++){
20            s[i][j]=p[i][j]-s[i-1][j-1]+s[i-1][j]+s[i][j-1];
21        }
22    }
23    int a,b,m=0,t;
24    cin>>a>>b;
25    /*
26    for(i=1;i<=l;i++){
27        for(j=1;j<=w;j++){
28            printf("%4d",s[i][j]);
29        }cout<<endl;
30    }*/
31    for(i=a;i<=l;i++){
32        for(j=b;j<=w;j++){
33            t=s[i][j]+s[i-a][j-b]-s[i][j-b]-s[i-a][j];
34            if(t>m){
35                m=t;
36            }
37        }
38    }
39    cout<<m;
40    //*/
41    return 0;
42}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白学视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 兔哥哥儿种花生
    • 问题描述
      • 代码
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档