传送门1
传送门2
思路:
比较简单的悬线法
相关资料自行百度
看一会就能明白的
反正这个就是模板题啦(敲桌)
虽然说好不发水题了,但这次发上来也就是给大家也给自己当个板子使……
代码:

#include<cstdio>
#include<iostream>
#define M 2004
using namespace std;
int n,m,ans1,ans2;
bool a[M][M];
int b[M],c[M],h[M][M],l[M][M],r[M][M];
int in()
{
    int t=0;char ch=getchar();
    while (ch>'9'||ch<'0') ch=getchar();
    while (ch>='0'&&ch<='9') t=(t<<1)+(t<<3)+ch-48,ch=getchar();
    return t;
}
main()
{
    n=in();m=in();
    for (int i=1;i<=n;++i)
        for (int j=1;j<=m;++j) a[i][j]=in();
    for (int i=1;i<=m;++i) l[0][i]=0,r[0][i]=m+1;
    for (int i=1;i<=n;++i)
    {        c[m+1]=m+1;
        b[1]=0;
        for (int j=2;j<=m;++j)
            if (a[i][j]^a[i][j-1]) b[j]=b[j-1];
            else b[j]=j-1;
        c[m]=m+1;
        for (int j=m-1;j;--j)
            if (a[i][j]^a[i][j+1]) c[j]=c[j+1];
            else c[j]=j+1;
        for (int j=1;j<=m;++j)
        {            if (i==1||(a[i][j]^a[i-1][j]))
                h[i][j]=h[i-1][j]+1,
                l[i][j]=max(l[i-1][j],b[j]+1),
                r[i][j]=min(r[i-1][j],c[j]-1);
            else
                h[i][j]=1,
                l[i][j]=b[j]+1,
                r[i][j]=c[j]-1;
            ans1=max(ans1,h[i][j]*(r[i][j]-l[i][j]+1));
            int t=min(h[i][j],r[i][j]-l[i][j]+1);
            ans2=max(ans2,t*t);
        }
    }
    printf("%d\n%d",ans2,ans1);
} 

【BZOJ1057】【codevs1428】棋盘制作,悬线法相关推荐

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

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

  2. [ZJOI2007]棋盘制作 悬线法dp 求限制下的最大子矩阵

    https://www.luogu.org/problemnew/show/P1169 第一次听说到这种dp的名称叫做悬线法,听起来好厉害 题意是求一个矩阵内的最大01交错子矩阵,开始想的是dp[20 ...

  3. 洛谷-P1169 棋盘制作(悬线法)

    国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个 8 × 8 8×8 8×8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳 ...

  4. 洛谷P1169 棋盘制作(悬线法)

    题目链接:https://www.luogu.org/problemnew/show/P1169 #include<bits/stdc++.h> #define fi first #def ...

  5. bzoj 1057: 棋盘制作(悬线法)

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

  6. P1169 [ZJOI2007]棋盘制作(悬线法)

    题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8 \times 88×8大小的黑白相间的方阵,对应八八六十四卦,黑白 ...

  7. P1169 [ZJOI2007]棋盘制作 DP悬线法

    题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8 \times 88×8大小的黑白相间的方阵,对应八八六十四卦,黑白 ...

  8. [ZJOI2007] 棋盘制作(单调栈 / DP悬线法)

    problem 洛谷链接 solution1-单调栈 很容易想到,预处理出每个点向上最大能延伸的长度,然后对每个点求一个矩阵面积. 然后思考优化,不难想到每次对一行进行求解. 每一行的所有列一起构成了 ...

  9. 最大子矩阵问题悬线法 学习小结

    最近在写dp的题目 但是我这个同学又又又又生病了 学习了一下多叉树的背包问题和最大子矩阵的问题,还有攒了几道期望,先总结一下矩阵问题: 问题模型: 在一个给定的矩形中有一些障碍点,找出内部不包含障碍点 ...

最新文章

  1. 人工智能的挑战远未到来
  2. 通过代码获取Bitmap图片资源
  3. elif在python中啥意思_python中elif 结构语句怎么判断?
  4. emiya-canvas.js 解决ios下拍照倾斜与canvas高清屏下绘图模糊问题 1
  5. 环信SDK 踩坑记webIM篇(一)
  6. Extjs4.2——bbar的默认类型(xtype)
  7. s3 java_java – 我们可以迭代Amazon S3中的完整对象集
  8. 通过经典题目来理解多种闭包实现方式
  9. git多系统协作时换行符问题
  10. 【伸手党福利】开发人员重装系统顺序
  11. R语言manova函数稳健多元方差分析(Robust one-way MANOVA)、rrcov包中的wilks.test函数稳健单向MANOVA、vegan包的adonis函数非参数Manova等效
  12. 虚拟服务器忘记密码,Win7系统下VMware虚拟机忘记开机密码如何解决
  13. ..\OBJ\PRESSURE_SYSTEM.axf: Error: L6218E: Undefined symbol FLASH_ErasePage (referred from flash.o).
  14. gem5-gpu 运行 PARSEC2.1
  15. 【Linux】树状目录结构
  16. 《Python编程:从入门到实践》答案
  17. 搭建开发环境——Python实战:Web App 开发 Day 01
  18. Hive动态分区和分桶
  19. uwp windows_如何在Windows 10的UWP游戏中监视FPS
  20. 使用C#实现一个PPT遥控器

热门文章

  1. linux+oracle磁盘空间,Linux下Oracle软件、数据文件等所在的磁盘分区空间不足的解决思路...
  2. python在scatter中添加图例_如何向matplotlib散点图添加图例
  3. 文字超过省略_纯CSS实现“文本溢出截断省略”的几种方法
  4. 设计模式笔记二十一:状态模式
  5. 2021-06-20 pip有时候需要加上--user安装才好使
  6. LaTeX youngtab包——组合数学中棋盘格的绘制
  7. jieba分词 ‘float‘ object has no attribute ‘decode‘ 解决方法
  8. 统计学习方法第二版知识点合集 - 自用笔记
  9. 欢迎各位小伙伴们关注我的公众号,可以随时跟我在微信上进行交流
  10. CI/CD是什么?如何理解持续集成、持续交付和持续部署