建别墅
2015-07-05 12:12
218 查看
建别墅
Time Limit:10000MS Memory Limit:65536K
Case Time Limit:1000MS
Description
何老板买了一块面积为n*m的土地,他想在这块土地上建造一座别墅。按照中国传统四平八稳的思想,他希望这个别墅是正方形的。
但是,这块土地并非十全十美,上面有很多地方是不平坦的,以至于根本不能在上面盖一砖一瓦。
他希望找到一块最大的平坦的正方形土地来盖别墅。应该选哪一块土地呢?现在,你来告诉他吧。
Input
第一行为两个整数n,m(1<=n,m<=1000),接下来n行,每行m个数字,用空格隔开。0表示该块土地不平坦,1表示该块土地平坦。
Output
一个整数,最大正方形的边长。
Sample Input
Sample Output
[/code]
Time Limit:10000MS Memory Limit:65536K
Case Time Limit:1000MS
Description
何老板买了一块面积为n*m的土地,他想在这块土地上建造一座别墅。按照中国传统四平八稳的思想,他希望这个别墅是正方形的。
但是,这块土地并非十全十美,上面有很多地方是不平坦的,以至于根本不能在上面盖一砖一瓦。
他希望找到一块最大的平坦的正方形土地来盖别墅。应该选哪一块土地呢?现在,你来告诉他吧。
Input
第一行为两个整数n,m(1<=n,m<=1000),接下来n行,每行m个数字,用空格隔开。0表示该块土地不平坦,1表示该块土地平坦。
Output
一个整数,最大正方形的边长。
Sample Input
4 4 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1
Sample Output
2
#include <stdio.h> bool a[1001][1001]; int f[1001][1001]; int min(int a, int b, int c) { if(a>b) a=b; if(a>c) a=c; return a; } inline void _read(int& d) { char t=getchar();bool f=false; while(t<'0'||t>'9') {if(t=='-') f=true; t=getchar();} for(d=0;t<='9'&&t>='0';t=getchar()) d=d*10+t-'0'; if(f) d=-d; } inline void _out(int d) { int o[30],top=1; if(d==0){putchar('0');return ;} if(d<0) {putchar('-');d=-d;} while(d) { o[top++]=d%10; d/=10; } for(--top;top;--top) putchar('0'+o[top]); } int main() { int i, j, n, m, t, ans=0; _read(n), _read(m); for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { _read(t); if(t) { a[i][j]=1; f[i][j]=1+min(f[i][j-1], f[i-1][j], f[i-1][j-1]); if(ans<f[i][j]) ans=f[i][j]; } } } _out(ans); return 0; }
[/code]
相关文章推荐
- 简单的TCP通信
- SPI协议及工作原理分析
- HomePageViewController
- CSS3制作W3cplus的关注面板
- Java类编译后Class文件概述(下)
- 函数指针及其的运用(上)——何为函数指针
- 能量项链(NOIP)
- 网络时代:我只是一个用户
- 最小交换合并
- 不能打开chm
- npm镜像使用方法
- Java 利用ASM读取变量值(Field value)问题研究
- 音乐的播放与停止
- java反射:使用asm 获取方法的参数名
- hdu 1863畅通工程(prim,邻接矩阵)
- Linux字符界面下的鼠标操作
- 字符串加解密
- 金明的预算方案(NOIP)
- 二.MyBatis的初始化
- Nginx学习之一——编译nginx