和玉蟾宫很像,条件改成不相等就行了。

悬线法题目 洛谷 P1169  p4147  p2701  p1387

#include<cstdio>
#include<algorithm>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
#define _for(i, a, b) for(int i = (a); i <= (b); i++)
using namespace std; const int MAXN = 2123;
int up[MAXN][MAXN], l[MAXN][MAXN];
int r[MAXN][MAXN], a[MAXN][MAXN], n, m; int main()
{
scanf("%d%d", &n, &m);
_for(i, 1, n)
_for(j, 1, m)
{
scanf("%d", &a[i][j]);
l[i][j] = r[i][j] = j;
up[i][j] = 1;
} _for(i, 1, n)
{
_for(j, 2, m)
if(a[i][j] != a[i][j-1])
l[i][j] = l[i][j-1];
for(int j = m - 1; j >= 1; j--)
if(a[i][j] != a[i][j+1])
r[i][j] = r[i][j+1];
} int ans1 = 0, ans2 = 0;
_for(i, 1, n)
_for(j, 1, m)
{
if(i > 1 && a[i][j] != a[i-1][j])
{
up[i][j] = up[i-1][j] + 1;
l[i][j] = max(l[i][j], l[i-1][j]);
r[i][j] = min(r[i][j], r[i-1][j]);
}
int w = r[i][j] - l[i][j] + 1, h = up[i][j];
ans1 = max(ans1, min(w, h) * min(w, h));
ans2 = max(ans2, w * h);
}
printf("%d\n%d\n", ans1, ans2); return 0;
}

最新文章

  1. canvas第一天
  2. 用C++开发Binder服务
  3. IOS开发基础知识--碎片45
  4. Hibernate学习笔记(二)
  5. CI框架中怎么传递大数据给PHP?
  6. JavaScript学习总结 Ajax和Http状态字
  7. Swift用UIBezierPath来画圆角矩形、自定义多路径图形
  8. window live writer的曲折安装过程
  9. 分数(有理数)的四则运算PAT1088
  10. H5单页面架构:自定义路由 + requirejs + zepto + underscore
  11. android App Widgets
  12. Facade ——为子系统的一组接口提供一致界面
  13. JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用
  14. python常用模块——collections
  15. amazeUI的confirm控件记录缓存问题的解决办法
  16. Java 11 已发布,String 还能这样玩!
  17. 20.Module 的语法
  18. systemctl介绍
  19. centos6和7关闭防火墙
  20. visual studio 2015 rc &amp;cordova -hello world

热门文章

  1. Django中模块的加载原理
  2. These relative modules were not found:...{&quot;sourceM ap&quot;:false} 报错解决
  3. debian 9 安装Virtual Box
  4. oracle间隔分区
  5. Android动态加载字节码
  6. 算法 - 求一个数组的最长递减子序列(C++)
  7. 利用wget 抓取 网站网页 包括css背景图片
  8. yolo源码解析(2):处理图片
  9. bzoj1066: [SCOI2007]蜥蜴(最大流)
  10. php设计模式之桥接模式