正题


题目大意

一个N∗NN*NN∗N的01矩阵,求一个面积最大的全为1的正方形


解题思路

先O(n2)O(n^2)O(n2)预处理hi,jh_{i,j}hi,j​表示在(i,j)(i,j)(i,j)这个位置向右有多少个连续的1。然后二分边长。
时间复杂度:O(n2logn):O(n^2\ log\ n):O(n2 log n)


codecodecode

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n,h[1100][1100],l,r;
bool a[1100][1100];
bool check(int l)
{for(int j=1;j<=n;j++){int sum=0;for(int i=1;i<=n;i++){if(h[i][j]>=l) sum++;else sum=0;if(sum>=l) return true;}}return false;
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){char x;cin>>x;a[i][j]=x-'0';}for(int i=1;i<=n;i++){int sum=0;for(int j=n;j>=1;j--){if(a[i][j]) sum++;else sum=0;h[i][j]=sum;}}l=1;r=n;while(l<=r){int mid=(l+r)/2;if(check(mid)) l=mid+1;else r=mid-1;}printf("%d",r*r);
}

nssl1304-最大正方形【二分答案】相关推荐

  1. 第十九章:二分查找和二分答案

    二分查找 二分的思想在程序设计中有着广泛的应用,例如,排序算法中的快速排序.归并排序,数据结构中的二叉树.堆.线段树等.二分是一种常用且高效的算法,它的基本用途是在单调序列中进行查找和判定操作. 二分 ...

  2. BZOJ 1567: [JSOI2008]Blue Mary的战役地图( 二分答案 + hash )

    二分答案, 然后用哈希去判断... ------------------------------------------------------------------------- #include ...

  3. B1567 [JSOI2008]Blue Mary的战役地图 二分答案+hash

    一开始以为是dp,后来看了一下标签...二分答案?之前也想过,但是没往下想,然后之后的算法就顺理成章,先求出第一个地图的所有子矩阵的hash值,然后求第二个,在上一个地图例二分查找,然后就没了. 算法 ...

  4. UVA1396 Most Distant Point from the Sea(AM - ICPC - Tokyo - 2007)(计算几何,半平面交 + 二分答案)

    整理的算法模板合集: ACM模板 题目传送门 见<训练指南>P279 很明显就是一个二分答案,它问的是最远的点,直接枚举因为这里都是double类型的数所以有无限个点,我们可以直接二分. ...

  5. UVA1146 / LA3211(ACM-ICPC 2004 Europe - Southwestern) Now or later(2-SAT问题 + 二分答案)

    题目要求为 最大化最小值,很明显就是二分答案. 题目中每个飞机 要么是一种状态(早),要么是另一种状态(晚),考虑 2-SAT. 我们二分答案,二分着陆时间间隔的最小值 x. 枚举每两个飞机 p , ...

  6. 解题报告:luoguP2868 Sightseeing Cows G(最优比率环,负环判定,二分答案)

    根据题意,我们要环上各点权值之和除以各边权值之和最大. 求最大答案,很明显可以使用二分答案.那么我们假设当前答案为 x,如果有更大的答案,那么方程就可以按下图转换: 也就是说如果有更大的答案,则有一个 ...

  7. P2759 奇怪的函数(二分答案,数学运算)

    P2759 奇怪的函数 范围2e92e92e9,直接枚举肯定超时,正着直接求答案求不出来,那么运用逆向思维,直接二分答案判断即可.这道题涉及简单的数学运算. 要xx>=nx^x>=nxx& ...

  8. P3743 kotori的设备(二分答案,思维,线性)难度⭐⭐⭐

    题目链接 题目背景 kotori 有 n 个可同时使用的设备. 题目描述 第 i 个设备每秒消耗ai个单位能量.能量的使用是连续的,也就是说能量不是某时刻突然消耗的,而是匀速消耗.也就是说,对于任意实 ...

  9. 【基础算法】二分法(二分答案,二分查找),三分法,Dinkelbach算法,算法详解+例题剖析

    目录 一 . 二分法 二分搜索得要求: 二分查找步骤: 二分答案: 玄学的二分(二分答案) 二 . 三分法 例题 三.01分数规划问题相关算法与题目讲解(二分法与Dinkelbach算法) 一 . 二 ...

  10. 洛谷P1182 数列分段Section II 二分答案

    洛谷P1182 数列分段Section II 二分答案 题意:将 n 个 数 分为 m段 求一种方案,使这m段中最大的和 最小 额..可能有点拗口,其实就是说每一种方案,都有对应的 每段和的最大值, ...

最新文章

  1. 数据库备份定期删除程序的开发。
  2. gitee 拉取其他分支_如何使用 Gitee 快速搭建 ESP-IDF 开发环境(Windows 版)
  3. Windows Phone 模拟器(Emulator) 加载程序一闪而过就自动退出的解决办法
  4. python编写程序-在线python编程
  5. PHP管理员登陆、验证与添加(前端验证)
  6. 009_storage.conf配置详情
  7. mainwindow.obj:-1: error: LNK2019: 无法解析的外部符号 public: __cdecl about::about(class QWidget *) (??0abo
  8. mysql 导入CSV数据 [转]
  9. windows下node安装
  10. 正确的 zip 压缩与解压代码
  11. Linux课题实践一
  12. 登陆注册重连 之 老掉牙的故事 新说法
  13. HBase(2) Java 操作 HBase 教程
  14. 《天天数学》连载45:二月十四日
  15. Android中实现“程序前后台切换效果”和“返回正在运行的程序,而不是一个新Activity”...
  16. stm32f103c8t6 FLASH模拟EEPROM
  17. BLDC在3D风扇屏(全息风扇屏原理)上的应用----Trinamic(TMC)解决方案
  18. 分享 10 个常见的 CSS 页面布局代码片段
  19. 3个老鼠确定8个瓶子哪瓶有毒
  20. 不让苹果开发者账号折磨我

热门文章

  1. c语言环境窗口组成,如何搭建C语言环境
  2. mysql 命令 g_MySQL命令行的几个用法
  3. python的文件操作os_python文件、文件夹操作OS模块
  4. android bitmap string,Android Bitmap到Base64字符串(Android Bitmap to Base64 String)
  5. 小说中场景的功能_如何让你的小说中的场景转换自如?
  6. android loading封装_我们经常用的Loading动画居然还有这种姿势
  7. java实用教程——组件及事件处理——DocumentEvent事件
  8. C++ 学习之旅(6)——循环loop
  9. [C++STL]list容器用法介绍
  10. word List 12