博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P2219 [HAOI2007]修筑绿化带
阅读量:5113 次
发布时间:2019-06-13

本文共 1646 字,大约阅读时间需要 5 分钟。

这道题跟很像,不大明白蛤OI是怎么想的,一年出两道这么相近的题

这道题有两个矩形,所以就有了两种做法(说是两种做法,其实只是维护的矩形不同)

一种是维护大矩形,一种是维护小矩形,我这里采取了维护小矩形的方法

先求出以\((i,j)\)为左上角的大矩形和小矩形的权值和为多少,然后用单调队列维护以(i,j)为左上角的大矩形里能放得最小的小矩形是哪个,最后做差得答案即可

下面是代码

#include
#include
#include
#include
#include
#define ll long long#define gc getchar#define maxn 1005using namespace std;inline ll read(){ ll a=0;int f=0;char p=gc(); while(!isdigit(p)){f|=p=='-';p=gc();} while(isdigit(p)){a=(a<<3)+(a<<1)+(p^48);p=gc();} return f?-a:a;}int n,m,a,b,c,d,ans,w[maxn][maxn];int w1[maxn][maxn],w2[maxn][maxn],x[maxn][maxn],y[maxn][maxn];struct ahaha{ int s,id;}q[maxn];int h,t;int main(){ n=read();m=read();a=read();b=read();c=read();d=read(); for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) w[i][j]=w[i-1][j]+w[i][j-1]+read()-w[i-1][j-1]; for(int i=1;i<=n-c+1;++i) for(int j=1;j<=m-d+1;++j){ w1[i][j]=w[i+c-1][j+d-1]-w[i+c-1][j-1]-w[i-1][j+d-1]+w[i-1][j-1]; if(i<=n-a+1&&j<=m-b+1) w2[i][j]=w[i+a-1][j+b-1]-w[i+a-1][j-1]-w[i-1][j+b-1]+w[i-1][j-1]; } for(int i=1;i<=n-c+1;++i){ int l=b-d+1; for(int j=1;j
=l-1)++h; x[i][j-l+1]=q[h].s; while(h<=t&&w1[i][j]<=q[t].s)--t; q[++t]={w1[i][j],j}; } h=1,t=0; } for(int i=1;i<=m-b+1;++i){ int l=a-c+1; for(int j=1;j
=l-1)++h; y[j-l+1][i]=q[h].s; while(h<=t&&x[j][i]<=q[t].s)--t; q[++t]={x[j][i],j}; } h=1,t=0; } for(int i=1;i<=n-a+1;++i) for(int j=1;j<=m-b+1;++j) ans=max(ans,w2[i][j]-y[i][j]); printf("%d\n",ans); return 0;}

转载于:https://www.cnblogs.com/hanruyun/p/10282671.html

你可能感兴趣的文章
OpenCV之响应鼠标(三):响应鼠标信息
查看>>
python7 数据类型的相互转化 字符编码
查看>>
Android 画图之 Matrix(一)
查看>>
React Native - 2 控件Flexbox
查看>>
前缀和
查看>>
Jquery插件汇集:
查看>>
Linux 启动、关闭、重启网络服务的两种方式
查看>>
List<T>列表通用过滤模块设计
查看>>
【模板】最小生成树
查看>>
设计模式之结构型模式
查看>>
修改navigationitem的title颜色字体阴影等属性
查看>>
前端开发中提到的“脚手架”到底指什么,CLI?gulp 和 gulp-cli有什么区别
查看>>
iis7规范URL及利用web.config进行重定向
查看>>
【Linux】入门篇 环境搭建
查看>>
poj2569
查看>>
使用mmap在内存中读写文件
查看>>
使用pygal_maps_world.i18n中数据画各大洲地图
查看>>
sql server必知多种日期函数时间格式转换
查看>>
ListView如何获取点击单元格内容
查看>>
jQuery EasyUI 的下拉选择combobox后台动态赋值
查看>>