题目描述

在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长。

输入输出格式

输入格式:

输入文件第一行为两个整数n,m(1<=n,m<=100),接下来n行,每行m个数字,用空格隔开,0或1.

输出格式:

一个整数,最大正方形的边长

输入输出样例

输入样例#1: 复制

4 4
0 1 1 1
1 1 1 0
0 1 1 0
1 1 0 1

输出样例#1: 复制

2这类问题和二维区间和的算法差不多
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<math.h>
using namespace std;
int n,m,maxn=1;
int a[110][110],f[110][110];
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){scanf("%d",&a[i][j]);f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+a[i][j];        }for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)for(int k=maxn;i+k<n&&j+k<m;k++){int w=f[i+k][j+k]+f[i][j]-f[i+k][j]-f[i][j+k];if(w==k*k) maxn=max(maxn,k);else break;}printf("%d",maxn);return 0;
}

题目背景

忙完了学校的事,v神终于可以做他的“正事”:陪女朋友散步。一天,他和女朋友走着走着,不知不觉就来到了一个千里无烟的地方。v神正要往回走,如发现了一块牌子,牌子上有有一行小字和一张图,小字说道:“找到图上最大的交错正方形之后和我联系,这块地就是你的了。”在房价疯长的年代,v神当然不愿错过这个机会,于是开始找了起来……以v神的能力当然找不出来了,你能帮v神找出来吗?

题目描述

图上有一个矩阵,由N*M个格子组成,这些格子由两种颜色构成,黑色和白色。请找到面积最大的且内部是黑白交错(即两个相连的正方形颜色不能相同)的正方形。

输入输出格式

输入格式:

第一行两个整数N和M,分别表示行数和列数。接下来有N行,每行M个数,0或1分别表示这个格子是黑色或白色。

输出格式:

仅有一行,表示满足条件最大正方形的 边长

输入输出样例

输入样例#1: 复制

3 3
0 1 0
1 0 0
1 1 1

输出样例#1: 复制

2
#include <iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
using namespace std;
const int N=1509;
int n,m;
bool map[N][N];
int f[N][N];
int ans;
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)    scanf("%d",&map[i][j]),f[i][j]=1;/*for(int i=2;i<=n;i++)    if(map[1][i]!=map[1][i-1])    f[1][i]=1;for(int i=2;i<=m;i++)    f[i][1]=1;*/map[0][1]=map[1][0]=!map[1][1];for(int i=2;i<=n;i++)for(int j=2;j<=m;j++){if(map[i][j]!=map[i-1][j] && map[i][j]!=map[i][j-1])f[i][j]=min(f[i-1][j],min(f[i-1][j-1],f[i][j-1]))+1;ans=max(ans,f[i][j]);}cout<<ans;return 0;
}

说明

样例解释:

(1,1)到(2,2)这个正方形是满足条件的,它的边长是2

数据范围约定:

对于30%的数据,N <= 20

对于60%的数据,N <=300

对于100%的数据,N <= 1500

转载于:https://www.cnblogs.com/CLGYPYJ/p/7737943.html

P1681 最大正方形 Iand II相关推荐

  1. P1681 最大正方形II (动态规划)

    题目背景 忙完了学校的事,v神终于可以做他的"正事":陪女朋友散步.一天,他和女朋友走着走着,不知不觉就来到了一个千里无烟的地方.v神正要往回走,如发现了一块牌子,牌子上有有一行小 ...

  2. 简单的dp P1681 最大正方形II

    题目背景 忙完了学校的事,v神终于可以做他的"正事":陪女朋友散步.一天,他和女朋友走着走着,不知不觉就来到了一个千里无烟的地方.v神正要往回走,如发现了一块牌子,牌子上有有一行小 ...

  3. 动态规划--from zpz

    版权声明:copy from zpz,我可能要修改 https://blog.csdn.net/qq_40828060/article/details/83064425 文章目录 前言 记忆化搜索 动 ...

  4. 动态规划,且学且放弃

    文章目录 前言 记忆化搜索 动态规划的基本解题思路 背包问题 01背包 (待处理)P1489 猫狗大战 01背包的空间优化问题 P1048 采药 P1510 精卫填海 P1566 加等式 P1504 ...

  5. 59. Spiral Matrix II

    /** 59. Spiral Matrix II * 12.5 by Mingyang* 注意,这里我们说的Matrix就是正方形,不再是长方形了,所以我们会用* 更简单的方法,就是直接上下左右分别加 ...

  6. LeetCode 996. 正方形数组的数目(回溯+剪枝)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个非负整数数组 A,如果该数组每对相邻元素之和是一个完全平方数,则称这一数组为正方形数组. 返回 A 的正方形排列的数目.两个排列 A1 和 A2 ...

  7. 随想录一期 day2 [977.有序数组的平方|209. 长度最小的子数组|59.螺旋矩阵II(剥洋葱)]

    977.有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序. 思路 递增数组,平方后最大值一定在最左侧或者最右侧,可想到– ...

  8. 迈向人工智能的下一步-《星际争霸II》

    by Daniel Bourke 丹尼尔·伯克(Daniel Bourke) 迈向人工智能的下一步-<星际争霸II> (The Next Step Towards Artificial G ...

  9. LeetCode:数组(排列组合,二分查找I,二分查找II)

    1,排列组合 38,剑指Offer:字符串的排列 题目:输入一个字符串,打印出该字符串中字符的所有排列.你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. class Solution {Li ...

最新文章

  1. Java并发学习二:编译优化带来的有序性问题导致的并发Bug
  2. 15分钟从零开始搭建支持10w+用户的生产环境(二)
  3. 声乐学习----关于发声的个人解读
  4. [深度学习] 神经网络中的 batch 和 epoch
  5. php pdo mysql类源码_完整示例php+pdo实现的购物车类
  6. LAMP架构调优(二)——修改Apache运行用户
  7. [lammps教程]OVITO绘制原子运动轨迹线
  8. 微信朋友圈怎么发GIF
  9. PM_10 十大管理之项目沟通管理(七)和干系人管理(八)
  10. matlab eig函数_MATLAB作图实例:14:绘制虚数和复数图
  11. Android系统编程入门系列之应用环境及开发环境介绍
  12. 华为鸿蒙系统的手机爆光图片,华为P50曝光,隐形镜头+麒麟9000E+鸿蒙系统,欣喜油然而生...
  13. 将波旁威士忌的整洁Mixins提升到新的水平
  14. 做题两大解题思想 by zyz on 2021/4/11
  15. 华三交换机IRF堆叠配置及MAD配置
  16. 电脑重装详细步骤(win10)
  17. vue3-video-play 实现视频播放
  18. html 下拉框a标签跳转,html下拉框跳转问题
  19. 视频教程-JavaScript实战讲解课程-Java
  20. 在ArcGIS中如何将A图层中的部分要素粘贴复制到B图层当中?

热门文章

  1. MySQL数据库学习笔记(一)----MySQL 5.6.21的安装和配置(setup版)
  2. Spark RDD概念学习系列之rdd持久化、广播、累加器(十八)
  3. OneZero第五周第二次站立会议(2016.4.19)
  4. HTML5 处理响应式图片
  5. No module named MySQLdb (django)
  6. java sharepoint 2010,安装SharePoint2010出现“Could not find stored procedure ‘sp_dboption’.”的解决方法...
  7. mysql 导入单个表_MySQL 备份恢复(导入导出)单个 innodb表
  8. Ubuntu下eclipse indigo版在线安装struts插件
  9. 使用MCI方法操作声音文件
  10. js判断页面是首次加载还是刷新