[bzoj1177]Oil
考虑将三个矩形按某种方式划分为再三个大矩形中找最大值,容易发现只有6种划分方式,分为两类:
1.4种,考虑第一条横/竖和第二条在第一条的两侧,这一类情况只需要预处理出左上/左下/右上/右下的最大子矩阵即可
2.2种,两条横线/竖线划分,以横线为例,只需要处理处每一行的答案,然后,然后简单维护一下即可
1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 2005
4 int n,m,k,x,y,ans,f[N],a[N][N],ll[N][N],lr[N][N],rl[N][N],rr[N][N];
5 int S(int x,int y){
6 return a[x][y]-a[x-k][y]-a[x][y-k]+a[x-k][y-k];
7 }
8 int main(){
9 scanf("%d%d%d",&n,&m,&k);
10 for(int i=1;i<=n;i++)
11 for(int j=1;j<=m;j++){
12 scanf("%d",&x);
13 a[i][j]=a[i][j-1]+a[i-1][j]-a[i-1][j-1]+x;
14 }
15 for(int i=k;i<=n;i++)
16 for(int j=k;j<=m;j++)
17 ll[i][j]=max(max(ll[i][j-1],ll[i-1][j]),S(i,j));
18 for(int i=k;i<=n;i++)
19 for(int j=m-k+1;j;j--)
20 lr[i][j]=max(max(lr[i][j+1],lr[i-1][j]),S(i,j+k-1));
21 for(int i=n-k+1;i;i--)
22 for(int j=k;j<=m;j++)
23 rl[i][j]=max(max(rl[i][j-1],rl[i+1][j]),S(i+k-1,j));
24 for(int i=n-k+1;i;i--)
25 for(int j=m-k+1;j;j--)
26 rr[i][j]=max(max(rr[i][j+1],rr[i+1][j]),S(i+k-1,j+k-1));
27 for(int i=k;i<=n-k;i++)
28 for(int j=k;j<=m-k;j++){
29 ans=max(ans,ll[n][j]+lr[i][j+1]+rr[i+1][j+1]);
30 ans=max(ans,ll[i][j]+lr[i][j+1]+rr[i+1][1]);
31 ans=max(ans,ll[i][m]+rl[i+1][j]+rr[i+1][j+1]);
32 ans=max(ans,ll[i][j]+rl[i+1][j]+rr[1][j+1]);
33 }
34 for(int i=k;i<=n;i++)
35 for(int j=k;j<=m;j++)f[i]=max(f[i],S(i,j));
36 x=0;
37 for(int i=k;i<=n;i++){
38 x=max(x,f[i]);
39 int y=0;
40 for(int j=i+k;j<=n-k;j++){
41 y=max(y,f[j]);
42 ans=max(ans,x+y+rr[j+1][1]);
43 }
44 }
45 x=0;
46 memset(f,0,sizeof(f));
47 for(int i=k;i<=n;i++)
48 for(int j=k;j<=m;j++)f[j]=max(f[j],S(i,j));
49 for(int i=k;i<=m;i++){
50 x=max(x,f[i]);
51 int y=0;
52 for(int j=i+k;j<=m-k;j++){
53 y=max(y,f[j]);
54 ans=max(ans,x+y+rr[1][j+1]);
55 }
56 }
57 printf("%d",ans);
58 }
[bzoj1177]Oil的更多相关文章
- [BZOJ1177][Apio2009]Oil
[BZOJ1177][Apio2009]Oil 试题描述 采油区域 Siruseri政府决定将石油资源丰富的Navalur省的土地拍卖给私人承包商以建立油井.被拍卖的整块土地为一个矩形区域,被划分为M ...
- BZOJ1177 [Apio2009]Oil 二维前缀和 二维前缀最值
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1177 题意概括 在一个n*m的矩阵中,每一个位置一个数字. 现在让你选出3个k*k的矩阵,它们互不 ...
- bzoj1177 [Apio2009]Oil 二维前缀最大值,和
[Apio2009]Oil Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 2300 Solved: 932[Submit][Status][Disc ...
- BZOJ1177:[APIO2009]Oil(枚举,前缀和)
Description 采油区域 Siruseri政府决定将石油资源丰富的Navalur省的土地拍卖给私人承包商以建立油井.被拍卖的整块土地为一个矩形区域,被划分为M×N个小块. Siruseri地质 ...
- BZOJ 4614 【Wf2016】 Oil
题目链接:Oil 感觉同时几线作战有点吃不消啊-- 这道题有一个显然的结论,那就是最优的直线一定过某条线段的端点. 仔细想想很有道理.如果最终的直线没有过线段的端点的话,那么这条直线就一定可以平移,直 ...
- Oil Deposits
Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
- Oil Deposits(dfs)
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...
- 2016HUAS暑假集训训练题 G - Oil Deposits
Description The GeoSurvComp geologic survey company is responsible for detecting underground oil dep ...
- uva 572 oil deposits——yhx
Oil Deposits The GeoSurvComp geologic survey company is responsible for detecting underground oil d ...
随机推荐
- nginx禁止IP访问系统
server { listen 80 default; server_name _; if ($host ~ "\d+\.\d+\.\d+\.\d") { return 404; ...
- Lamport时间戳论文笔记
本文主要参考文献[1]完成. 声明:本人仅在博客园发表了本文章,笔名LightningStar,其他网站均为转载. 笔记 私以为,论文中作者的核心工作是为分布式系统建立了一种数学模型,并基于这种数学模 ...
- 题解 [HAOI2018]反色游戏
题目传送门 题目大意 给出一个 \(n\) 个点 \(m\) 条无向边的图,每个点都有一个 \(\in [0,1]\) 的权值,每次可以选择一条边,然后将该边相连两点权值异或上 \(1\).问有多少种 ...
- 洛谷3783 SDOI2017 天才黑客(最短路+虚树+边转点+线段树优化建图)
成功又一次自闭了 怕不是猪国杀之后最自闭的一次 一看到最短路径. 我们就能推测这应该是个最短路题 现在考虑怎么建图 根据题目的意思,我们可以发现,在本题中,边与边之间存在一些转换关系,但是点与点之间并 ...
- ls命令剖析
目录 ls命令剖析 资料翻译 SYNOPSIS 使用方式 DESCRIPTION 说明 参数的说明 -l 参数字符的解释 文件权限的解释 FILES 文件夹 实战演练 ls 命令 ls -l 命令 l ...
- python收集参数与解包
收集任意数量的实参 def make_pizza(*toppings): """打印顾客点的所有配料""" print(toppings) ...
- CentOS 压缩解压
目录 命令 tar gzip.gunzip bzip2.bunzip2 zip.unzip 命令组合 打包:将多个文件合成一个总的文件,这个总的文件通常称为"归档". 压缩:将一个 ...
- 安装pytorch后import torch显示no module named 'torch'
问题描述:在pycharm终端里通过pip指令安装pytorch,显示成功安装但是python程序和终端都无法使用pytorch,显示no module named 'torch'. 起因:电脑里有多 ...
- 集合先从ArrayList开始
本篇文章非常建议直接从经典Demo开始哦~ 一.ArrayList简介 ArrayList 的底层是数组队列,相当于动态数组.与 Java 中的数组相比,它的容量能动态增长.在添加大量元素前,应用程序 ...
- .NET Core TLS 协议指定被我钻了空子~~~
前言 此前,测试小伙伴通过工具扫描,平台TLS SSL协议支持TLS v1.1,这不安全,TLS SSL协议至少是v1.2以上才行,想到我们早已将其协议仅支持v1.3,那应该非我们平台问题.我依然自信 ...