SHUOJ农场的边长
来源:互联网 发布:stc单片机最小系统 编辑:程序博客网 时间:2024/04/30 07:57
SHUOJ农场的边长
描述
飞哥最近 得到 了一大块 n*m 的土地 ,他想在这块土地 上建一个正方 形的农场 ,但是 这块土 地有些地方 被大石头 占着,无法 使用 ,于是 飞哥想来问你 在这块土地 上能建成的农场 的最大 边 长为多少 ?
输入
第一个数T表示数组组数
每组 数据 一开 始有两个 整数 n和 m,表示 土地 的长和宽。
接下 来是个 n*m 的矩阵元素只有0和1,0表示 这块地方被石头占着,1表示可以使用。
m,n<=1000
输出
对每组数据输出一行,表示农场最大的边长。
样例输入
4 4
0 1 1 1
1 1 1 0
0 1 1 0
1 1 0 1
样例输出
2
我的想法
这是在矩阵里找一个最大的正方形,相关的博客有很多。然而对于咸鱼的我来说还是太难理解了,有些很棒的代码没有思路和注释,对我来说又是一个巨大的挑战(可能我只能展望试读警告了吧orz)。跪求大佬能指点一下我。当然看过感觉有用的资料还是要贴出来
[LeetCode01矩阵]http://blog.csdn.net/jiyanfeng1/article/details/47269465
AC代码
#include<stdio.h>int matrix[1000][1000];int main(){ int t=0,i=0; scanf("%d",&t); for(i=0;i<t;i++) { int n,m,j,k; scanf("%d %d",&n,&m); for(j=0;j<n;j++) for(k=0;k<m;k++) scanf("%d",&matrix[j][k]); k=large(n,m); } return 0;}int large(int n,int m){ int max=1; int i,j; for(i = 1; i < n; i++) for(j = 1; j < m; j++) if(matrix[i][j] == 1) { int mmin = min(matrix[i - 1][j], matrix[i][j - 1]); mmin = min(matrix[i - 1][j - 1], mmin); matrix[i][j] = mmin + 1; if(max < matrix[i][j]) max = matrix[i][j]; } printf("%d\n",max); return max;}int min(int a,int b){ return a < b ? a : b;}
阅读全文
0 0
- SHUOJ农场的边长
- 求正方形的边长
- 边长为n的直角三角形的边长组合
- 趣题:正方形的边长是多少?
- 求最大正方形的边长
- 相连的农场题解
- 题目:相连的农场
- bzoj4177: Mike的农场
- Mike的农场
- 相连的农场
- BZOJ4177: Mike的农场
- BZOJ4177: Mike的农场
- 《疯狂农场》带来的启示
- QQ开心农场的人生哲理
- 别了我的农场牧场。。。。
- 玩开心农场的体会
- RQNOJ T480 相连的农场
- 我的窗户有农场
- 古文观止卷七_弔古戰場文_李華
- 一分钟了解“c语言如何建立数组”
- ubuntu16.04安装Kaldi+运行测试TIMIT
- 前端解决跨域问题的8种方案(最新最全)
- window下编译ffmpeg
- SHUOJ农场的边长
- 判断字符串是JSONObject 还是JSONArray?
- PaddlePaddle学习笔记:新手入门:机器学习基础知识
- CCNA第三天(交换机)
- 湖南省第六届大学生计算机程序设计竞赛 数字整除
- MySQL 利用伪列优化多次使用order by
- 数据处理:12个使得效率倍增的pandas技巧
- Spring之AOP
- android webview图片文件上传兼容性问题——上传控件点击无效的解决办法