洛谷 [P1387]最大正方形
来源:互联网 发布:mac怎么下载word软件 编辑:程序博客网 时间:2024/05/16 11:25
本题非常有趣。
(n^6) 枚举四个端点,每次遍历矩阵求解。
(n^4) 先处理前缀和,枚举四个端点,每次比较前缀和和正方形面积。
(n^3) 枚举左上方端点,在枚举边长,前缀和优化
(n^2logn) 枚举左上方端点,发现条件是单调的,于是二分边长
(n^2) DP做法,枚举右下端点,若该点是0,dp[i][j]=0;若该点是1,dp[i][j]=min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+1;
可以在读入的时候直接处理
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <cstdlib>using namespace std;int init(){ int rv=0,fh=1; char c=getchar(); while(c<'0'||c>'9'){ if(c=='-') fh=-1; c=getchar(); } while(c>='0'&&c<='9'){ rv=(rv<<1)+(rv<<3)+c-'0'; c=getchar(); } return rv*fh;}int n,m,dp[105][105],ans;int main(){ freopen("in.txt","r",stdin); n=init();m=init(); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ int t=init(); if(!t) dp[i][j]=0; else dp[i][j]=min(dp[i-1][j],min(dp[i][j-1],dp[i-1][j-1]))+1; ans=max(ans,dp[i][j]); } } cout<<ans; fclose(stdin); return 0;}
阅读全文
0 0
- 洛谷 P1387 最大正方形
- 洛谷 p1387 最大正方形
- 洛谷 P1387 最大正方形
- 洛谷 P1387 最大正方形
- 洛谷p1387最大正方形
- 洛谷 P1387 最大正方形
- 洛谷 [P1387]最大正方形
- luogu P1387 最大正方形
- [P1387]最大正方形
- P1387 最大正方形
- [USACO5.3]巨大的牛棚Big Barn && 洛谷【p1387】最大正方形(动态规划)
- 洛谷1387 最大正方形
- 洛谷 1387 最大正方形
- 洛谷1387最大正方形
- 洛谷1387最大正方形
- 洛谷 1387最大正方形
- 洛谷 1387 最大正方形
- 洛谷 P 1387 最大正方形
- Eclipse Mars 界面工具栏调整
- Six Degrees
- [51NOD](1003)阶乘后面0的数量 ---数学
- 推荐一个JAR包下载地址
- 容器和泛型
- 洛谷 [P1387]最大正方形
- GPIO口几种模式
- 创建继承于类person的类student
- Eddy's AC难题
- java提高篇之集合大家族
- 自定义组件
- 文件的存取
- android接入微信 sdk时屏幕会黑屏
- 瀑布流