P2241 统计方形(数据加强版)题解

题目

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

输入输出格式

输入格式

一行,两个正整数n,m(n≤5000,m≤5000)。

输出格式

一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。

输入输出样例

输入样例

2 3

输出样例

8 10

解析

思路一:统计一个n*m的矩形里有多少个正方形,长方形。要明确,正方形和长方形都是矩形,那么n*m的矩形里的矩形数=正方形数+长方形数

∵ 长方形长不等于宽
∴ 子长方形的长宽是由原矩形长宽减去不同数而得,即(n-b)*(m-a) (a≠b)
∵正方形长等于宽
∴子正方形构成的矩阵的长宽由原矩形长宽减去相同数而得,即(n-b)*(m-a) (a=b)

代码

#include<iostream>
using namespace std;
long long n,m,a1,a2;
int main(){cin>>n>>m;for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(i==j){//i==j,此时为正方形a1+=(n-i)*(m-j);}else{a2+=(n-i)*(m-j);}}}cout<<a1<<" "<<a2;return 0;
}

思路二:

一、算正方形的个数

如果我们固定了正方形的右下角(i,j),此时可能的正方形的个数为min(i,j),所以可以枚举右下角,计算此时答案,求和即可。

二、算长方形个数

其实算长方形并不常见,但算矩形应该经常遇到,所以这里可以先算矩形,再联系第一个问题,那答案就转化为矩形个数-正方形个数。像求解正方形个数一样,固定矩形右下角(i,j),显然此时矩形个数为i*j,同理,求和即可。

代码

#include<iostream>
#include<cmath>
using namespace std;
long long n,m,a1,a2;
int main(){cin>>n>>m;for(int i=0;i<n;i++){for(int j=0;j<m;j++){a1+=min(i,j);//正方形个数a2+=i*j; //矩形个数}}cout<<a1<<" "<<a2-a1;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/656523.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

部署YUM仓库服务

一、yum仓库 1. yum简介 yum是一个基于RPM包&#xff08;是Red-Hat Package Manager红帽软件包管理器的缩写&#xff09;构建的软件更新机制&#xff0c;能够自动解决软件包之间的依赖关系。 为什么会有依赖关系的发生 因为linux本身就是以系统简洁为自身优势&#xff0c;所以…

超超超详细讲解TCP三次握手与四次挥手(大图解),值得收藏

TCP 三次握手与四次挥手深入探究 TCP基础知识 TCP 头格式有哪些 TCP首部包括20字节的固定首部部分及长度可变的其他选项&#xff0c;所以TCP首部长度可变。20个字节又分为5部分&#xff0c;每部分4个字节32位&#xff0c;如图中的前5行&#xff0c;每行表示32位。 TCP 头格…

云服务器如何快速部署访问静态页面(个人网站博客等)

1&#xff0c;购买云服务器 2&#xff0c;配置安全项 云服务器ecs下&#xff0c;配置ip、端口所有人都可访问 3&#xff0c;关闭防火墙&#xff0c;将前端静态项目传输到云服务器上 可以使用SecureCRT&#xff0c;本地远程连接到服务器&#xff08;需要用户名与密码&#x…

LVS常用的NAT模式和DR模式实战示例

引言&#xff1a;紧接上文&#xff0c;了解LVS&#xff0c;这一篇就够了-CSDN博客&#xff0c;今天我们对LVS常用的两种模式来进行示例配置演示 LVS-NAT模式 1、环境准备 准备 3 台纯净的虚拟机 关闭防火墙和selinux 例&#xff1a; lvs-server 添加两个网卡 NAT模式 …

基于连续相位负载调制的单输入宽带混合Doherty功率放大器设计(2023.05 MTT)-从理论到ADS版图

基于连续相位负载调制的单输入宽带混合Doherty功率放大器设计-从理论到ADS版图 最近开始搞大论文了&#xff0c;Doherty方面对最新的一些的技术看的比较少&#xff0c;找几个牛逼的学习一下下&#xff0c;虽然最后可能也用不上。已经完成了理论的推导和ADS版图仿真&#xff0c…

4、this指向、动画案例、封装、offset、client、scroll

一、this指向问题 1、在构造函数中this指向实例化对象 2、在自定义对象的函数&#xff08;方法&#xff09;中指向this指向当前的对象 3、在普通函数中this指向window 4、函数中this指向&#xff1a;在事件函数中this指向事件源 5、在定时器函数中this指向window 二、动…

原型链继承: 原理:将父类的实例作为子类的原型

function Father(){this.age10this.phone{first:"华为",second:"小米"}}Father.prototype.getagefunction(){return this.age}function Son(name,money){this.namenamethis.moneymoney}Son.prototypenew Father() //子类型的原型为父类型的一个实例对象Son…

Jython调用openwire库连接activemq转发topic订阅消息到另一个activemq 服务器上 完整代码

以下是一个示例代码&#xff0c;演示如何在Jython中使用OpenWire库连接ActiveMQ&#xff0c;将一个主题&#xff08;topic&#xff09;上的订阅消息转发到另一个ActiveMQ服务器上&#xff1a; from org.apache.activemq import * from org.apache.activemq.transport import *…

7-上传下载

上传下载 首先创建一张上传文件的表&#xff0c;例如&#xff1a; drop table if exists sys_file_info; create table sys_file_info (file_id int(11) not null auto_increment comment 文件id,file_name varchar(50) default …

动态分析C语言代码生成函数调用关系的利器——gprof

大纲 准备工作下载libevent代码安装编译依赖编译libevent 收集运行数据编译插入检测代码的可执行程序收集数据 数据转换环境准备转换为dot 转换为图片环境准备转换图片 参考代码参考资料 gprof是一个C语言程序性能分析工具。在编译期间&#xff0c;我们给编译指令增加-pg选项&a…

第 8 章:Linux中使用时钟、计时器和信号

在本章中&#xff0c;我们将开始探索Linux环境中可用的各种计时器。随后&#xff0c;我们将深入了解时钟的重要性&#xff0c;并探讨UNIX时间的概念。接下来&#xff0c;我们将揭示在Linux中使用POSIX准确测量时间间隔的方法。之后&#xff0c;我们将进入std::chrono的领域&…

20240130收获

el-table-column的formatter属性的回调函数会传给我们row的数据&#xff0c;即直接把整行的数据给到我们了&#xff0c;而不是给我们该列的数据。所以我们应该通过{xx}解构的方式来取我们要的属性。解构的时候&#xff0c;不要写错了&#xff0c;比如obj.name&#xff0c;我们想…

创业7年复盘,中美企业服务市场差异浅析

2024 年伊始&#xff0c;Kyligence 联合创始人兼 CEO 韩卿在公司内部的飞书订阅号发表了多篇 Rethink Data & Analytics 的内部信&#xff0c;分享了对数据与分析行业的一些战略思考&#xff0c;尤其是 AI 带来的各种变化和革命&#xff0c;是如何深刻地影响这个行业乃至整…

一篇文带你使用js实现拖拽排序

先介绍一下html5的drag属性,拖放&#xff08;Drag 和 drop&#xff09;是 HTML5 标准的组成部分。想要启用drag&#xff0c;只要给元素加上draggable"true"就行了&#xff08;Safari 5.1.2除外&#xff09;。   实际效果&#xff1a; 拖动事件(了解事件详情)   事…

Node.js 模块化

一、介绍 1.1 什么是模块化与模块 ? 将一个复杂的程序文件依据一定规则&#xff08;规范&#xff09;拆分成多个文件的过程称之为 模块化 其中拆分出的 每个文件就是一个模块 &#xff0c;模块的内部数据是私有的&#xff0c;不过模块可以暴露内部数据以便其他 模块使用 1…

股票市场

&#xff08;一&#xff09;股票市场 顾名思义&#xff0c;就是买卖股票的场所。就是为了撮合想发展但缺钱的企业与有钱但想投资的投资者。 股票市场按照交易场所&#xff0c;可分为场内市场和场外市场&#xff1a; 场内市场是指证券交易所&#xff0c; 场外市场就是证券交易…

【Linux】Linux环境基础开发工具使用

上篇博客我们学习了Linux权限相关知识&#xff0c;那么这节课我们来学习一下Linux环境基础开发工具使用吧~&#xff0c;主要包括yum、vim、gcc/g的使用&#xff0c;以及Linux项目自动化构建工具。 目录 Linux软件包管理器--yum yum是什么 yum相关操作 yum本地配置 Linux编…

蓝桥杯-循环节长度

两个整数做除法&#xff0c;有时会产生循环小数&#xff0c;其循环部分称为: 循环节。比如&#xff0c;11/136>0.8461553846153..... 其循环节为[846153] 共有 6 位。下面的方法&#xff0c;可以求出循环节的长度。请仔细阅读代码&#xff0c;并填写划线部分缺少的代码。 注…

redis—Zset有序集合

目录 前言 1.常见命令 2.使用场景 3.渐进式遍历 4.数据库管理 前言 有序集合相对于字符串、列表、哈希、集合来说会有一-些陌生。它保留了集合不能有重复成员的 特点&#xff0c;但与集合不同的是&#xff0c;有序集合中的每个元素都有-个唯- -的浮 点类型的分数(score) …

RabbitMQ安装及使用讲解

RabbitMQ 是一个开源的消息队列系统&#xff0c;它能够让你轻松地构建分布式、可扩展和可靠的应用程序。下面是 RabbitMQ 的安装及使用讲解&#xff1a; 安装 RabbitMQ 首先&#xff0c;你需要从 RabbitMQ 的官网上下载并安装 RabbitMQ。具体的安装方法可以参考官方文档。启动…