洛谷 P1169 [ZJOI2007]棋盘制作 (悬线法)
和玉蟾宫很像,条件改成不相等就行了。
悬线法题目 洛谷 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;
}
 												
											洛谷 P1169 [ZJOI2007]棋盘制作 (悬线法)的更多相关文章
- 洛谷P1169 [ZJOI2007]棋盘制作 悬线法 动态规划
		
P1169 [ZJOI2007]棋盘制作 (逼着自己做DP 题意: 给定一个包含0,1的矩阵,求出一个面积最大的正方形矩阵和长方形矩阵,要求矩阵中相邻两个的值不同. 思路: 悬线法. 用途: 解决给定 ...
 - P1169 [ZJOI2007]棋盘制作 && 悬线法
		
P1169 [ZJOI2007]棋盘制作 给出一个 \(N * M\) 的 \(01\) 矩阵, 求最大的正方形和最大的矩形交错子矩阵 \(n , m \leq 2000\) 悬线法 悬线法可以求出给 ...
 - P1169 [ZJOI2007]棋盘制作[悬线法/二维dp]
		
题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8 \times 88×8大小的黑白相间的方阵,对应八八六十四卦,黑白 ...
 - P1169 [ZJOI2007]棋盘制作——悬线法
		
---恢复内容开始--- 给你一个矩阵,选出最大的棋盘,棋盘的要求是黑白相间(01不能相邻),求出最大的正方形和矩形棋盘的面积: 数据n,m<=2000; 这个一看就可能是n2DP,但是写不出. ...
 - P1169 [ZJOI2007]棋盘制作 悬线法or单调栈
		
思路:悬线法\(or\)单调栈 提交:2次 错因:正方形面积取错了\(QwQ\) 题解: 悬线法 讲解:王知昆\(dalao\)的\(PPT\) 详见代码: #include<cstdio> ...
 - 洛谷 P1169 [ZJOI2007]棋盘制作
		
2016-05-31 14:56:17 题目链接: 洛谷 P1169 [ZJOI2007]棋盘制作 题目大意: 给定一块矩形,求出满足棋盘式黑白间隔的最大矩形大小和最大正方形大小 解法: 神犇王知昆的 ...
 - 【题解】洛谷P1169 [ZJOI2007] 棋盘制作(坐标DP+悬线法)
		
次元传送门:洛谷P1169 思路 浙江省选果然不一般 用到一个从来没有听过的算法 悬线法: 所谓悬线法 就是用一条线(长度任意)在矩阵中判断这条线能到达的最左边和最右边及这条线的长度 即可得到这个矩阵 ...
 - 洛谷P1169[ZJOI2007]棋盘制作
		
题目 一道悬线法的裸题,悬线法主要是可以处理最大子矩阵的问题. 而这道题就是比较经典的可以用悬线法来处理的题. 而悬线法其实就是把矩阵中对应的每个位置上的元素分别向左向上向右,寻找到不能到达的地方,然 ...
 - BZOJ 1057: [ZJOI2007]棋盘制作 悬线法求最大子矩阵+dp
		
1057: [ZJOI2007]棋盘制作 Description 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑 ...
 
随机推荐
- codecademy练习记录--Learn Python(70%)
			
############################################################################### codecademy python 5. ...
 - 嵌入式平台选择:树莓派 or BeagleBone Black(BBB)
			
原文链接: Michael Leonard 翻译: 极客范- 小道空空 译文链接: http://www.geekfan.net/5246/ 嵌入式平台选择:树莓派 or BeagleBone Bla ...
 - laydate 监听日期切换
			
```` //日期范围 laydate.render({ elem: '#Time', range: "至", max: gitData() ,done: function(val ...
 - Numpy的使用规则
			
之前安装的python版本是3.7 各种库都是自己一个一个下载安装的 很操心 各种缺功能 后来发现了anaconda 啊 真是一个好东西 简单来说 它就是一个涵盖大部分常用库的python包 一次安装 ...
 - python 添加自定义库
			
首先,写一个库文件aaa.py 格式,在python安装目录下面创建一个空的文件夹命名Function 或者其他文件名, 然后将文件保存在python 安装目录下面的一个Function文件夹下面. ...
 - 原生javaScript完成Ajax请求
			
使用原生javaScript完成Ajax请求,首先应该创建一个对象XMLHttprequest,考虑到兼容低版本IE浏览器,使用ActiveXObject对象,代码入下: var request; i ...
 - 【codeforces 234F】Fence
			
[题目链接]:http://codeforces.com/problemset/problem/234/F [题意] 你有n块板要凃油漆; 然后每块板有高度h[i];(宽度都为1) 然后每块板只能凃同 ...
 - WinServer-IIS-js无法加载问题
			
IIS中无法加载JS文件错误 尝试下面的几种解决方法,一起用
 - HDU 1023
			
卡特兰数.把进栈看成是+1,出栈看成是-1,任何时候部分和都有a1+a2+....ak>=0.求这样的数列的个数.这明显是卡特兰数的一个解释嘛.在<组合数学>这本书就有这样的原本的证 ...
 - 从头认识java-15.3 使用HashSet须要注意的地方
			
这一章节我们来讨论一下使用Set的各种实现须要注意的地方. Set接口的经常使用实现类有:HashSet.TreeSet,LinkedHashSet 1.HashSet 大家对于HashSet的印象都 ...