矩形(n*m)内所有小矩形的个数:1/4*n*(n+1)*m*(m+1)

推导:

一条长度为n的线段包含多少条长度为r的线段?(n-r+1)个

以n=11,r=3举例:

移动到最后,发现1到9<11-3+1>都可以找到长度为3的线段

所以一条长度为n的线段包含(n-r+1)个长度为r的线段

如果想知道<n*m的矩形中能找出多少个1*3的矩形>似乎只需要弄明白<长度为n的线段能找出多少个长度为1的线段>和<长度为m的线段能找出多少个长度为3的线段>这两个问题,它们的答案分别是(n-1+1)和(m-3+1),所以<n*m的矩形中能找出多少个1*3的矩形>的答案是(n-1+1)*(m-3+1)

回到问题,<n*m的矩形中能找出多少个矩形>

只需要找出<n中包含的1~n的线段的总数>、<m中包含的1~m的线段的总数>,n中包含长度为1的线段数目是(n-1+1),长度为2的线段数目是(n-2+1)...根据等差数列前n项和,我们可以求出,<n中包含的1~n的线段的总数>为1/2*n*(n+1),同理<m中包含的1~m的线段的总数>为1/2*m*(m+1)

所以<n*m的矩形中能找出多少个矩形>答案是1/4*n*(n-1)*m*(m-1)

正方形的个数:

long long int sq=0;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){sq+=min(i,j);}

i,j是矩形的坐标,也是寻找的正方形的右下角的坐标。将每个坐标的左上角的正方形全部加起来得到所有正方形的个数

所有矩形的个数减去正方形的个数即为长方形的个数

#include<bits/stdc++.h>
using namespace std;
int n,m;
int main()
{cin>>n>>m;long long int all=(0.25*n*(n+1)*m*(m+1));long long int sq=0;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){sq+=min(i,j);}cout<<sq<<' '<<all-sq;
}

矩形内方形与长方形的个数相关推荐

  1. 一个n*m矩形内正方形和长方形的个数

    正方形的个数为n*m+(n-1)*(m-1)+....,直到n或m有一个为1,.以n=2,m=3为例,即正方形个数为2*3+1*2: 长方形个数为(m+(m-1)+...+1)*(n*(n-1)+.. ...

  2. 统计方格区域内正方形和长方形的个数(洛谷P1548题题解,Java语言描述)

    题目要求 P1548题目要求 分析 这题,一看就懵,因为一看就需要推公式,很麻烦-- 此时发现本题是洛谷红题哈哈哈,还没"高性能"标签,那就暴力吧!!! 注意只要区域是正方形就不是 ...

  3. UE4之判断点是否在矩形内

    向量点乘的几何意义 向量点乘的数学定义: 向量点乘的几何意义: 所以向量的点乘可以用来计算两个向量之间的夹角.当夹角在0-90度之间,值为正数,在90-180之间,为负数 利用向量点乘计算点在矩形内 ...

  4. 蒙特卡洛算法求矩形内切圆面积

    已知:矩形长宽皆为1,则内切圆半径为0.5.求:该圆面积(利用蒙特卡洛算法) 编程思路如下: 1,利用random.unifom生成0到1之间的数字,分别赋值给x,y. 2,判断生成点是否落在矩形区域 ...

  5. 安卓自定义view中 绘画基本图形点线面,矩形,方形,圆,扇形,文字及沿着特定方向布局,自定义圆角ImageView图片等等相关api使用方法及举例

    安卓自定义view中 绘画基本图形点线面,矩形,方形,圆,扇形,文字及沿着特定方向布局,自定义圆角ImageView图片等等相关api使用方法及举例,图片压缩处理逻辑 本文旨在介绍自定义View的实现 ...

  6. 关于判断一个点是否落在矩形内

    判断一个点是否在矩形内会经常用到,比如判断点是否在障碍物里,判断游戏中的玩家是否在某一区域.网上的解释都是抄来抄去的,有的明显错误也没发现,要么就是扔了一段代码,什么解释也没有,让人云里雾里.因此这里 ...

  7. POJ 1410 Intersection 判断线段交和点在矩形内 【计算几何】

    ACM博客_kuangbin POJ 1410 Intersection(判断线段交和点在矩形内) Intersection Time Limit: 1000MS   Memory Limit: 10 ...

  8. Java黑皮书课后题第3章:**3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠

    **3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠 题目 题目概述 运行示例 破题 代码 ...

  9. Java黑皮书课后题第3章:**3.23(几何:点是否在矩形内)编写程序,提示用户输入点(x,y),然后检测该点是否在以原点为中心、宽为10、高为5的矩形中

    @TOC,然后检测该点是否在以原点为中心.宽为10.高为5的矩形中) 题目 题目概述 **3.23(几何:点是否在矩形内)编写程序,提示用户输入点(x,y),然后检测该点是否在以原点为中心.宽为10. ...

最新文章

  1. 固定旋转_旋转压片机如何正确更换冲模?
  2. 设计模式C++实现(3)——装饰模式
  3. 使用 WPF + Chrome 内核实现 在线客服系统 的复合客服端程序
  4. 输出一个整数的逆序数
  5. Windows编程—获取Chrome浏览器的安装目录
  6. 线性代数【15】复合线性变换-矩阵乘法 和 三维变换
  7. 均薪连续三年过万,北上深人才需求大 !| 5G 人才报告
  8. Java中static代码块,main函数,构造函数运行顺序
  9. [BUG]Ubuntu server 16.04安装,无网卡驱动解决
  10. viper4android哪个版本好,ViPER4Android FX蝰蛇音效下载-ViPER4Android FX蝰蛇音效 v2.7.0.0_手机乐园...
  11. ipad协议传奇820
  12. 嵌入式软件设计之设计模式
  13. android解锁方法,手机如何解锁密码 几种安卓手机解锁方法介绍
  14. Scrum板与Kanban如何抉择?kxqmoznsc板与按照rlooie
  15. L2-016 愿天下有情人都是失散多年的兄妹
  16. Centos7配置阿里云的镜像加速器(2)
  17. 短视频的素材在哪里找呢?推荐给你一个好办法
  18. PHP 微信JSP支付
  19. seo vue 动态路由_基于Vue SEO的四种方案
  20. linux查看系统硬件温度

热门文章

  1. Qt TCP/UDP局域网通信软件 模仿QQ TIM
  2. ros 单向通讯 talker,listener 发布订阅模型
  3. ROS学习总结一:talker and listener
  4. python代码加密运行在win10_如何在Win10上正确安装Python,VSCode和flake8
  5. 《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》目录—导读
  6. 814. Binary Tree Pruning(C语言)
  7. 数据技术嘉年华专列10月28日抵达广州,请做好接站准备
  8. i3-10110U和i5 1035g7 哪个好
  9. RK3399 Android7.1修改系统默认USB功能
  10. php 单笔转账到支付宝账户,php实现单笔转账到支付宝功能