BZOJ1057
来源:互联网 发布:手机二次元壁纸软件 编辑:程序博客网 时间:2024/06/06 01:04
传送门:BZOJ1057
大水题(虽然我WA了status的一页)
不知道那些搞奇偶性的什么心态……
直接悬线法即可。
不要忘记判断当前点与上方点有无关系
代码上的小细节见下。
#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <algorithm>#include <iostream>using namespace std;int h[2005][2005],l[2005][2005],r[2005][2005];int map[2005][2005];int f[2005][2005];int lo,ro;int n,m;int ans;void First(){ for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(i==1) h[i][j]=1; else h[i][j]=map[i-1][j]==map[i][j]?1:h[i-1][j]+1; for(int i=1;i<=n;i++){ lo=1;ro=m; for(int j=1;j<=m;j++) if(j==1) l[i][j]=1; else if(map[i][j]==map[i][j-1]) l[i][j]=lo=j; else if(i==1||h[i][j]==1) l[i][j]=lo; else l[i][j]=max(l[i-1][j],lo); for(int j=m;j>=1;j--) if(j==m) r[i][j]=m; else if(map[i][j]==map[i][j+1]) r[i][j]=ro=j; else if(i==1||h[i][j]==1) r[i][j]=ro; else r[i][j]=min(r[i-1][j],ro); } /*for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) printf("%d %d %d %d %d\n",i,j,l[i][j],r[i][j],h[i][j]);*/}void Solve(){ for(int i=1;i<=n;i++) for(int j=1;j<=m;j++){ if(i==1||j==1||map[i-1][j]==map[i][j]||map[i][j-1]==map[i][j]) f[i][j]=1; else f[i][j]=min(min(f[i-1][j],f[i][j-1]),f[i-1][j-1])+1; ans=max(ans,f[i][j]); } printf("%d\n",ans*ans); ans=0; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) ans=max(ans,(r[i][j]-l[i][j]+1)*h[i][j]); printf("%d\n",ans);}void Readdata(){ freopen("loli.in","r",stdin); scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%d",&map[i][j]);}void Close(){ fclose(stdin); fclose(stdout);}int main(){ Readdata(); First(); Solve(); Close(); return 0;}
0 0
- BZOJ1057
- BZOJ1057【单调栈】
- BZOJ1057: [ZJOI2007]棋盘制作
- BZOJ1057: [ZJOI2007]棋盘制作
- BZOJ1057: [ZJOI2007]棋盘制作
- bzoj1057: [ZJOI2007]棋盘制作
- [bzoj1057][ZJOI2007]棋盘制作
- BZOJ1057 制造棋盘
- 【bzoj1057】[ZJOI2007]棋盘制作
- 【BZOJ1057】【ZJOI2007】棋盘制作
- bzoj1057 [ZJOI2007]棋盘制作
- bzoj1057 [ZJOI2007]棋盘制作
- [bzoj1057][dp]棋盘制作
- [悬线法] BZOJ1057 [ZJOI2007]棋盘制作
- 【BZOJ1057】【codevs1428】棋盘制作,悬线法
- BZOJ1057 棋盘制作 单调栈
- [BZOJ1057]ZJOI2007棋盘制作|DP|单调栈
- 【bzoj1057】【ZJOI2007】【棋盘制作】【悬线法+dp】
- PCIE协议解析 synopsys IP Core 读书笔记(2)
- json格式字符串转集合
- TFS客户端接口详解JAVA版本
- vijos - P1456最小总代价 (状态压缩DP + 记忆化搜索)
- Memset()函数综合分析
- BZOJ1057
- HDU 5353
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- C# List排序
- solr管理配置,关于数据导入,集群复制及日志配置
- Android四大基本组件与生命周期的详细介绍
- .NET学习笔记
- iOS开发(Objective-C)常用库索引
- 1688 Sightseeing(最短路+次短路+计数)