当前位置: 首页 > news >正文

统计方形(暴力枚举)

洛谷P2241-统计方形

题目描述:

有一个 n×m 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。


import java.util.*;
public class Main {public static void main(String[] args) {Scanner in=new Scanner(System.in);int n=in.nextInt();int m=in.nextInt();int sum=0,square=0;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){//sum为所有矩形总数sum += i * j;//square为正方形个数square += i < j ? i : j;	}//输出正方形数 和 矩形数(不包括正方形)System.out.println(square+" "+(sum-square));}
}

测试用例:输入:2   3                                    输出:8   10


思路:

所有方形的个数=正方形的个数+长方形的个数。对于任意一个n行m列的矩形,以这个方形右下角的那个块作为要在矩形内选择正方形或长方形的右下角,则正方形的个数为min(i,j),长方形的个数为i∗j

解释如下:

对于一个n行m列的矩形,右下角的块必选,则能和这个块组成的正方形的右上角块全在这个主对角线上,而对角线上块的数量就是min(i,j)。对于矩形来说,n行m列的矩形内所有点都能和右下角的这个点构成长方形,所以长方形的数量就是i*j。


http://www.mrgr.cn/news/43183.html

相关文章:

  • java 根据URL链接生成二维码中间添加logo
  • 【C++打怪之路Lv7】-- 模板初阶
  • Linux基于CentOS学习【进程状态】【进程优先级】【调度与切换】【进程挂起】【进程饥饿】
  • 20241005给荣品RD-RK3588-AHD开发板刷Rockchip原厂的Android12时使用iperf3测网速
  • Java Supplier和Consumer接口
  • Arthas(阿尔萨斯)
  • 企业数字化转型中的常见挑战与TOGAF解决方案:从架构理论到实践的指导
  • 【WSL】解决‘wsl:检测到localhost代理配置,但未镜像到WSL‘问题
  • 信号用wire类型还是reg类型定义
  • PostgreSQL 字段使用pglz压缩测试
  • C语言之文件操作
  • 插画共享系统小程序的设计
  • Redis基础二(spring整合redis)
  • GEE教程:MODIS/006/MOD16A2数据计算蒸散发数据的时序图表和下载
  • Pikachu-xxe-xxe漏洞
  • Nacos理论知识+应用案例+高级特性剖析
  • 字符串数学专题
  • 华为 HCIP-Datacom H12-821 题库 (31)
  • Three.js基础内容(一)
  • 数据库习题简例