------------恢复内容开始------------

题意

给出一个\(n*n\)的矩阵,矩阵中,有些格子被染成白色,有些格子被染成黑色,现要求矩阵中白色矩形的数量

分割线

Ⅰ.暴力出奇迹!!!

  1. ①枚举矩形左上角的点(两重循环)
  2. ②枚举矩形的长和宽(两重循环)
  3. ③一个点一个点得验证矩形是否合法(两重循环)

但是非非非非常明显的,步骤三可以优化掉。

\(我们想要的不过是矩形内都是白色,二位前缀和可以很方便的做到。\)
\(假如白色是代表1,黑色代表2,那么矩形的值应该是它面积的大小\)

\(所以4重循环还是很快的!!\)

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n,sumn[159][159];
  4. char a[159][159];
  5. int main()
  6. {
  7. cin>>n;
  8. for(int i=1;i<=n;i++)
  9. for(int j=1;j<=n;j++)
  10. {
  11. cin>>a[i][j];
  12. int k=0;
  13. if(a[i][j]=='W') k=1;
  14. sumn[i][j]=sumn[i-1][j]+sumn[i][j-1]+k-sumn[i-1][j-1];
  15. }
  16. int ans=0;
  17. for(int i=1;i<=n;i++)//枚举长
  18. for(int j=1;j<=n;j++)//枚举高
  19. for(int q=1;q+i-1<=n;q++)
  20. for(int w=1;w+j-1<=n;w++)
  21. {
  22. int temp;
  23. int x=i+q-1,y=j+w-1;
  24. temp=sumn[x][y]-sumn[q-1][y]-sumn[x][w-1]+sumn[q-1][w-1];
  25. if(temp==i*j) ans++;
  26. }
  27. cout<<ans;
  28. }

Ⅱ.\(n^3\)做法

虽然看懂了,但感觉并不是很好理解

想了解请点我(●'◡'●)

------------恢复内容结束------------

P1191 矩形的更多相关文章

  1. 洛谷 P1191 矩形 题解

    P1191 矩形 题目描述 给出一个 \(n \times n\)的矩阵,矩阵中,有些格子被染成白色,有些格子被染成黑色,现要求矩阵中白色矩形的数量 输入格式 第一行,一个整数\(n\),表示矩形的大 ...

  2. luogu P1191 矩形 |dp

    题目描述 给出一个n×nn \times nn×n的矩阵,矩阵中,有些格子被染成白色,有些格子被染成黑色,现要求矩阵中白色矩形的数量 输入格式 第一行,一个整数nnn,表示矩形的大小. 接下来nnn行 ...

  3. [BOT] 一种android中实现“圆角矩形”的方法

    内容简介 文章介绍ImageView(方法也可以应用到其它View)圆角矩形(包括圆形)的一种实现方式,四个角可以分别指定为圆角.思路是利用"Xfermode + Path"来进行 ...

  4. C语言 · 矩形面积交

    问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积. 输入格式 输入仅包含两行,每行描述一个矩形. 在每行中 ...

  5. canvas快速绘制圆形、三角形、矩形、多边形

    想看前面整理的canvas常用API的同学可以点下面: canvas学习之API整理笔记(一) canvas学习之API整理笔记(二) 本系列文章涉及的所有代码都将上传至:项目代码github地址,喜 ...

  6. [LeetCode] Perfect Rectangle 完美矩形

    Given N axis-aligned rectangles where N > 0, determine if they all together form an exact cover o ...

  7. [LeetCode] Rectangle Area 矩形面积

    Find the total area covered by two rectilinear rectangles in a2D plane. Each rectangle is defined by ...

  8. [LeetCode] Maximal Rectangle 最大矩形

    Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and ...

  9. [LeetCode] Largest Rectangle in Histogram 直方图中最大的矩形

    Given n non-negative integers representing the histogram's bar height where the width of each bar is ...

随机推荐

  1. slice使用了解

    切片 什么是slice slice的创建使用 slice使用的一点规范 slice和数组的区别 slice的append是如何发生的 复制Slice和Map注意事项 什么是slice Go中的切片,是 ...

  2. JVM崩溃的原因及解决!

    JVM崩溃的原因及解决! 前些天,搞JNI的时候,报了个JVM崩溃的错.错误信息如下: # # An unexpected error has been detected by HotSpot Vir ...

  3. 关于node中两个模块相互引用却不会死循环的问题

    关于node中两个模块相互引用却不会死循环的问题 node中是通过require来导入加载模块的,require有两个作用: 1.加载文件模块并执行里面的代码 2.拿到被加载文件模块导出的接口对象 现 ...

  4. AJ整理问题之:copy,对象自定义copy 什么是property

    AJ分享,必须精品 copy copy的正目的 copy 目的:建立一个副本,彼此修改,各不干扰 Copy(不可变)和MutableCopy(可变)针对Foundation框架的数据类型. 对于自定义 ...

  5. Activity A 跳转到Activity B 生命周期

    又被生命周期折磨了一段时间,这次是被onPause 和 onStop 折磨了,一直认为Activity A 跳转到到 Activity B的生命周期是onPause(A),onStop(A),onCr ...

  6. sublime text3配置html环境

    1.安装View in Browser 2.配置快捷键 [1]Preferences—Key Bindings—User. [2]插入代码 [ //ie { "keys": [&q ...

  7. 学习Salesforce | Einstein业务机会评分怎么玩

    Einstein 业务机会评分(Opportunity Scoring)是销售团队的得力助手,通过分数以及研究影响分数的因素,确定业务机会的优先级,赢得更多交易. Einstein 业务机会评分可以给 ...

  8. ST表(求解静态RMQ问题)

    例题:https://www.acwing.com/problem/content/1272/ ST表类似于dp. 定义st[i][j]表示以i为起点,长度位2^j的一段区间,即[ i , i + 2 ...

  9. 华为鲲鹏服务器安装 k3s+rancher

    华为鲲鹏服务器安装 k3s+rancher 华为鲲鹏服务器 华为鲲鹏服务器采用华为自研cpu ARMv8架构,提供 Windows 和多个Linux 系统,作为服务器使用我一直使用Centos系统(不 ...

  10. jeecg ant design vue一级菜单跳到外部页面——例如跳到百度

    需求:点击首页跳到百度新打开的页面 找到SideMenu.vue   对应的inde.js找到renderMenuItem 函数.加一个判断 if(menu.meta.url=='https://ww ...