题意

给定\(n*m\)的棋盘,每个格子有0或1其中的一种颜色。

求一个最大的正方形,满足正方形内0和1相互间隔。

求一个最大的矩形,满足矩形内0和1相互间隔。

\(n,m\leq 2000\)

分析

这是个棋盘,满足相邻两个颜色不同。

我们不难想到对于一个格子\((i,j)\),若\((i+j)\mod 2=1\),那么把\((i,j)\)这个格子的颜色取反。

原问题就变成了求最大相同颜色正方形和最大相同颜色矩形。

只要能解决最大相同颜色矩形,那么正方形的问题也可以用类似的方法解决,所以问题转化为求最大相同颜色矩形。

这是个二维的问题,我们先考虑一维的问题怎样解决:

给定\(c[i]\),求最长一段\([l,r]\),使得\(c[l]=c[l+1]=...=c[r]\)

这是个经典的最大子段问题,我们可以通过贪心求出,对于每个位置求出\(ex[i]\),表示最大的\(ex\),满足\(c[i]=c[i+1]=...=c[i+ex[i]-1]\)

在二维上,我们对于每一行,预处理出\(ex[i][j]\):在第\(i\)行上,最大的\(ex\),使得\(c[i][j]=c[i][j+1]=...=c[i][j+ex-1]\)

那么,一种直观的想法:我们枚举每一个左上角的位置\((i,j)\),枚举纵向向下伸长到\(k\),那么长度为\(w=\min(ex[i][j],ex[i+1][j],...,ex[k][j])\),用\(w*k\)更新答案。

即求:\(\max_{1\leq i\leq m,1\leq j\leq k\leq n}(k-j+1)*(\min_{p=j}^k ex[i][p])\)

但是,这是\(O(n^3)\)的...

我们考虑能否继续优化,即减少枚举量。

思考这样一条性质:\(\min_{p=j}^k ex[i][p]\)必然等于某个\(ex\)。

所以我们枚举\(ex[i][p]\),然后看它最多能向上伸展多少,最多能向下伸展多少,用\(ex[i][p]*len\)即可。

所以只需要快速处理出最多向上伸展多少,向下伸展多少即可。

用单调队列+二分或者ST表可以轻松解决。

小结

(1)最值问题的处理手段

这种东西从今天开始正式被我废除掉了。

并没有什么用。

(2)枚举超时可能会出现在两个问题上:①枚举量过大 ②统计枚举的方法不够优

为此,我们可以有两种考虑方法:

①极大化思想:减少枚举量,找出不可能的满足什么条件,进而可能的满足什么条件

②使用各种数据结构或者算法进行优化

(3)棋盘问题

棋盘问题要明确几个基本的模型和思路。

①染色法

②插头dp,状态压缩dp

③处理处第一行,推出之后的情况

④爆搜

⑤网络流

【bzoj1057】棋盘制作的更多相关文章

  1. 【BZOJ-3039&1057】玉蟾宫&棋盘制作 悬线法

    3039: 玉蟾宫 Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 753  Solved: 444[Submit][Status][Discuss] D ...

  2. BZOJ1057 [ZJOI2007]棋盘制作(极大化思想)

    1057: [ZJOI2007]棋盘制作 Time Limit: 20 Sec  Memory Limit: 162 MB Submit: 1848  Solved: 936 [Submit][Sta ...

  3. BZOJ1057 [ZJOI2007]棋盘制作 【最大同色矩形】

    1057: [ZJOI2007]棋盘制作 Time Limit: 20 Sec  Memory Limit: 162 MB Submit: 3248  Solved: 1636 [Submit][St ...

  4. 洛谷 P1169 [ZJOI2007]棋盘制作

    2016-05-31 14:56:17 题目链接: 洛谷 P1169 [ZJOI2007]棋盘制作 题目大意: 给定一块矩形,求出满足棋盘式黑白间隔的最大矩形大小和最大正方形大小 解法: 神犇王知昆的 ...

  5. bzoj 1057: [ZJOI2007]棋盘制作 单调栈

    题目链接 1057: [ZJOI2007]棋盘制作 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 2027  Solved: 1019[Submit] ...

  6. BZOJ 1057: [ZJOI2007]棋盘制作( dp + 悬线法 )

    对于第一问, 简单的dp. f(i, j)表示以(i, j)为左上角的最大正方形, f(i, j) = min( f(i + 1, j), f(i, j + 1), f(i + 1, j + 1)) ...

  7. [P1169] 棋盘制作 &悬线法学习笔记

    学习笔记 悬线法 最大子矩阵问题: 在一个给定的矩形中有一些障碍点,找出内部不包含障碍点的,边与整个矩形平行或重合的最大子矩形. 极大子矩型:无法再向外拓展的有效子矩形 最大子矩型:最大的一个有效子矩 ...

  8. 悬线法 || BZOJ 1057: [ZJOI2007]棋盘制作 || Luogu P1169 [ZJOI2007]棋盘制作

    题面:P1169 [ZJOI2007]棋盘制作 题解: 基本是悬线法板子,只是建图判断时有一点点不同. 代码: #include<cstdio> #include<cstring&g ...

  9. P1169 [ZJOI2007]棋盘制作 && 悬线法

    P1169 [ZJOI2007]棋盘制作 给出一个 \(N * M\) 的 \(01\) 矩阵, 求最大的正方形和最大的矩形交错子矩阵 \(n , m \leq 2000\) 悬线法 悬线法可以求出给 ...

  10. [luogu P1169] [ZJOI2007]棋盘制作

    [luogu P1169] [ZJOI2007]棋盘制作 题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8*8大小的 ...

随机推荐

  1. Python3基础 assert关键字 成功啥事没有,失败了就报错

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  2. 数据库SQL语句练习题5--9

    5. 查询Score表中成绩为85,86或88的记录. ,,) 6. 查询Student表中“95031”班或性别为“女”的同学记录. ' or ssex = '女' 7. 以Class降序查询Stu ...

  3. Cheatsheet: 2013 09.01 ~ 09.09

    .NET Multi Threaded WebScraping in CSharpDotNetTech .NET Asynchronous Patterns An Overview of Projec ...

  4. [51NOD1537] 分解(递推,矩阵快速幂)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1537 思路:一开始用二项式拆了一下,发现这个式子的形式总能变成 ...

  5. [POJ3667]Hotel(线段树,区间合并)

    题目链接:http://poj.org/problem?id=3667 题意:有一个hotel有n间房子,现在有2种操作: 1 a,check in,表示入住.需要a间连续的房子.返回尽量靠左的房间编 ...

  6. freebsd镜像作用和vmware服务开启

    第一个是可以引导的光盘,只能引导系统,通常用于网络安装.基本没用.第二个是系统光盘的第一张.用这张就可以安装一个基本的系统.其他的软件,在系统安装完之后安装.第三个是系统盘的DVD版本.包括的软件比上 ...

  7. hdu 4828 Grids 卡特兰数+逆元

    Grids Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Problem D ...

  8. IBM Lotus Domino V8.5 服务器管理入门手册

    转自 http://freemanluo.blog.51cto.com/636588/336128

  9. Java中枚举类型简单学习

    /* * enum类型不允许继承 * 除了这一点,我们基本上可以将enum看作一个常规的类 * 我们可以添加自己的方法与属性,我们也可以覆盖其中的方法. * 不过一定要在enum实例序列的最后添加分号 ...

  10. bootstrap-datepicker 日期格式设置

    [参考文档]http://bootstrap-datepicker.readthedocs.org/en/latest/ datepicker插件默认是时间格式为mm/dd/yyyy,如何更改时间的格 ...