BZOJ 1177 [Apio2009]Oil(递推)
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1177
【题目大意】
给出一个矩阵,从中选出3个k*k且不相交的矩阵,使得其总和最大
【题解】
只要处理四个方向的前缀最大值,就可以分类比较得到答案。
【代码】
#include <cstdio>
#include <algorithm>
using namespace std;
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define red(i,a,b) for(int i=b;i>=a;i--)
const int N=2600;
int n,m,k,x,s[N][N],a[N][N],b[N][N],c[N][N],d[N][N],ans=0;
int main(){
scanf("%d%d%d",&n,&m,&k);
rep(i,1,n)rep(j,1,m){scanf("%d",&x);s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+x;}
red(i,k,n)red(j,k,m)s[i][j]-=s[i-k][j]+s[i][j-k]-s[i-k][j-k];
rep(i,k,n)rep(j,k,m)a[i][j]=max(s[i][j],max(a[i-1][j],a[i][j-1]));
rep(i,k,n)red(j,k,m)b[i][j]=max(s[i][j],max(b[i-1][j],b[i][j+1]));
red(i,k,n)rep(j,k,m)c[i][j]=max(s[i][j],max(c[i+1][j],c[i][j-1]));
red(i,k,n)red(j,k,m)d[i][j]=max(s[i][j],max(d[i+1][j],d[i][j+1]));
rep(i,k,n-k)rep(j,k,m-k)ans=max(ans,a[i][j]+b[i][j+k]+c[i+k][m]);
rep(i,k,n-k)rep(j,k+k,m)ans=max(ans,b[i][j]+d[i+k][j]+a[n][j-k]);
rep(i,k+k,n)rep(j,k,m-k)ans=max(ans,c[i][j]+d[i][j+k]+a[i-k][m]);
rep(i,k,n-k)rep(j,k,m-k)ans=max(ans,a[i][j]+c[i+k][j]+b[n][j+k]);
rep(i,k,n)rep(j,k+k,m-k)ans=max(ans,s[i][j]+a[n][j-k]+b[n][j+k]);
rep(i,k+k,n-k)rep(j,k,m)ans=max(ans,s[i][j]+a[i-k][m]+c[i+k][m]);
printf("%d\n",ans);
}
BZOJ 1177 [Apio2009]Oil(递推)的更多相关文章
- 枚举(分类讨论):BZOJ 1177: [Apio2009]Oil
1177: [Apio2009]Oil Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 1477 Solved: 589[Submit] Descri ...
- [BZOJ]1177: [Apio2009]Oil
题目大意:给出一个n*m的矩阵,选出3个不相交的k*k子矩阵,使得子矩阵中元素和最大.(k<=n,m<=1500) 思路:选出的子矩阵有3种情况:横着排三个.竖着排三个.三角状分布(其中有 ...
- BZOJ 1002 FJOI2007 轮状病毒 递推+高精度
题目大意:轮状病毒基定义如图.求有多少n轮状病毒 这个递推实在是不会--所以我选择了打表找规律 首先执行下面程序 #include<cstdio> #include<cstring& ...
- bzoj[HNOI2015]亚瑟王 - 递推与动规 - 概率与期望
[bzoj4008][HNOI2015]亚瑟王 2015年4月22日3,2991 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之 ...
- HYSBZ(BZOJ) 4300 绝世好题(位运算,递推)
HYSBZ(BZOJ) 4300 绝世好题(位运算,递推) Description 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<= ...
- bzoj 4161 Shlw loves matrixI——常系数线性齐次递推
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4161 还是不能理解矩阵…… 关于不用矩阵理解的方法:https://blog.csdn.ne ...
- 【BZOJ 1019】【SHOI2008】汉诺塔(待定系数法递推)
1019: [SHOI2008]汉诺塔 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 559 Solved: 341[Submit][Status] ...
- 【BZOJ】1089: [SCOI2003]严格n元树(递推+高精度/fft)
http://www.lydsy.com/JudgeOnline/problem.php?id=1089 题意:求深度为d的n元树数目.(0<n<=32, 0<=d<=16) ...
- 【递推】BZOJ 3930: [CQOI2015]选数
Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公 ...
随机推荐
- mysql集群安装配置
看网上很多人说mysql集群不是很稳定,因此这2天做了下mysql的集群,打算配置没有什么问题了,过2天做下相关的性能测试,我的配置环境如下: 操作系统: Centos5.2 软件 ...
- shell基础认识
Shell 我们在终端下写命令Linux内核是看不懂的必须通过shell解释成内核可执行的代码 这就是shell(其实解释命令这只是它的一个功能模块,shell还可以用来进行程序设计) 有点类似win ...
- 如何正确理解正则表达式中的分隔符 \b
前言:好久不见,博客园. 最近在学习研究regex,其中有个特迷惑自己的知识点是分隔符 ( word boundary) [\b] (注:为了方便,后文都以[]来包含字符,并不是reg规则里面的[] ...
- 转:Server.MapPath相关
如果你从Page类继承的类中执行这条语句,才可以简单地使用 DataBase = Server.MapPath("data.mdb");否则写全命名空间:System.Web.Ht ...
- HTML5 标签元素的一些注意事项
不运行写结束标记的元素(但标签元素): area.base.br.col.command.embed.hr.img.input.keygen.link.meta.param.source.track. ...
- 织梦list文章列表按权重排序
织梦的文章列表按权重排序 DEDECMS(织梦)5.6系统支持文档权重weight排序,可以在模板中使用: {dede:arclist row='10' titlelen='50' orderby=' ...
- hdu 5046 Airport 二分+重复覆盖
题目链接 给n个点, 定义两点之间距离为|x1-x2|+|y1-y2|. 然后要选出k个城市建机场, 每个机场可以覆盖一个半径的距离. 求在选出点数不大于k的情况下, 这个半径距离的最大值. 二分半径 ...
- Oracle EBS-SQL (SYS-23):用户权限查询.sql
select b.user_name, b.description, b.creation_date, d.responsibility_name from fnd_user b, fnd_use ...
- 搭建Android开发环境之——Android4.0.3, 4.1, 4.2, 4.3, 4.x,及升级 ADT(22.0.5)和SDK(22.x)
1.首先要下载相关的软件 1). JDK 6 以上 2). eclipse( Version 3.6.2 or higher ) 点击下载 3). SDK(android-sdk_r18-windo ...
- 走进小作坊(十一)----移动web实现指南
四.五年前智能手机行业刚刚兴起,差别于之前功能机阉割版的web开发方式,一些学者就開始探索移动web的UI方向了.从PC迁移到移动端的web设计现成可用的原则有,很多其它的则是依据移动端独有特点进行探 ...