博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
棋盘制作
阅读量:5051 次
发布时间:2019-06-12

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

left[i][j]计算这个位置这个点能跑到的最左边的位置

right[i][j]计算这个位置这个点能跑到的最右边的位置

up[i][j]计算这个位置这个点能向上跑的最上的位置

那么很明显对每个位置长就是right[i][j]-left[i][j]+1 宽就是min(u[i][j],right[i][j]-left[i][j]+1)

初始化时维护自己当前位置就行了

left递推式为 

for(re int i=1;i<=n;i++)

for(re int j=2;j<=m;j++)
if(res[i][j]!=res[i][j-1])
lef[i][j]=lef[i][j-1];

right递推式为

for(re int i=1;i<=n;i++)

for(re int j=m-1;j>0;j--)
if(res[i][j]!=res[i][j+1])
righ[i][j]=righ[i][j+1];

那么问题就得到解决了

#include 
#include
#include
#include
using namespace std;#define ll long long#define re registerconst int maxn=2001;void read(int &a){ a=0; int d=1; char ch; while(ch=getchar(),ch>'9'||ch<'0') if(ch=='-') d=-1; a=ch^48; while(ch=getchar(),ch>='0'&&ch<='9') a=(a<<3)+(a<<1)+(ch^48); a*=d;}int res[maxn][maxn],lef[maxn][maxn],righ[maxn][maxn],up[maxn][maxn];int n,m,ans1,ans2;int main(){ read(n); read(m); for(re int i=1;i<=n;i++) for(re int j=1;j<=m;j++) { read(res[i][j]); lef[i][j]=righ[i][j]=j; up[i][j]=1; } /*cout<<"left1"<
0;j--) if(res[i][j]!=res[i][j+1]) righ[i][j]=righ[i][j+1]; for(re int i=1;i<=n;i++) for(re int j=1;j<=m;j++) { if(i>1&&res[i][j]!=res[i-1][j]) { lef[i][j]=max(lef[i][j],lef[i-1][j]); righ[i][j]=min(righ[i][j],righ[i-1][j]); up[i][j]=up[i-1][j]+1; } int a=righ[i][j]-lef[i][j]+1; int b=min(a,up[i][j]); /*if(b*b>ans1) cout<
<<" "<
<<" "<<"1"<
ans2) cout<
<<" "<
<<" "<<"2"<

 

转载于:https://www.cnblogs.com/acm1ruoji/p/10872223.html

你可能感兴趣的文章
Eclipse 调试的时候Tomcat报错启动不了
查看>>
【安卓5】高级控件——拖动条SeekBar
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android入门之文件系统操作(二)文件操作相关指令
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
Swift 中的指针使用
查看>>
Swift - 使用闭包筛选过滤数据元素
查看>>
alue of type java.lang.String cannot be converted to JSONObject
查看>>
搜索引擎选择: Elasticsearch与Solr
查看>>
JAVA设计模式之简单工厂模式与工厂方法模式
查看>>
③面向对象程序设计——封装
查看>>
【19】AngularJS 应用
查看>>
Spring
查看>>
Linux 系统的/var目录
查看>>
Redis学习---Redis操作之其他操作
查看>>
WebService中的DataSet序列化使用
查看>>
BZOJ 1200 木梳
查看>>
【Linux】【C语言】菜鸟学习日志(一) 一步一步学习在Linxu下测试程序的运行时间...
查看>>
hostname
查看>>
SpringBoot使用其他的Servlet容器
查看>>