暴力枚举专题之统计方形

news2024/12/25 12:46:27

P2241 统计方形(数据加强版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

你以为这篇文章的标题是暴力枚举那么我们就直接枚举长方形和正方形的数量吗,nonono,小伙子(小美女),洛谷哪会这么善良,不要太天真了哟!

回归原题,我们思考怎么枚举正方形,我们知道正方形的边长是我们一点更要枚举的,那当我们知道了正方形的边长后该怎么办呢。

我先给的大家结论后解释

aa=a*b;

for(e=2;e<=dmin;e++) {
	f=(a-(e-1))*(b-(e-1));	
			aa=aa+f;	
}

大家可以看到正方形的边长可以是1就是所有小个子的数量,所以我们直接加上所有小格子的数量即可。关键问题在于我们的公式是怎么的的。

 

我们拿表格为例,假设我们的边长为2,那我们四行四列,我们先从第一行入手,我们发现当正方形的上边在1时,我们会令正方形先占据第一和第二列,接下来我们让他占据第2和第3列接着是第3和第四列,发现规律了吗,我们除了第一次我们直接占据了两个新列以外,其余我们都只占了一个新的列,所以以前两行为例,当边长为2时我们的公式就是

(b-(e-1))

那么这是前两行,我们总共能放置几行呢,跟列一个原理除了第一次新站2行外此后每个都只占1行,推广开来,我们令行和列减去第一次多占的行或列乘以对应的行和列即可。大家可以亲自拿纸来推推哦


import java.awt.FontFormatException;
import java.io.BufferedReader; 
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.lang.reflect.AnnotatedWildcardType;
import java.math.BigInteger;
import java.net.DatagramPacket;
import java.sql.SQLIntegrityConstraintViolationException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.Map;
import java.util.Objects;
import java.util.PriorityQueue;
import java.util.Scanner;
import java.util.Spliterator.OfPrimitive;
import java.util.function.IntToDoubleFunction;
import java.util.function.LongBinaryOperator;
import java.util.TreeMap;
import java.util.TreeSet;
import javax.management.relation.InvalidRelationTypeException;
import javax.print.attribute.standard.JobMessageFromOperator;
import javax.print.attribute.standard.JobPriority;
import javax.swing.plaf.ColorChooserUI;
import javax.swing.table.TableModel;
import javax.swing.text.TabSet;
import javax.xml.crypto.dsig.spec.DigestMethodParameterSpec;
public class Main {
  public static void main(String[] args) throws IOException  {
Scanner sc=new Scanner(System.in);
BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw1=new PrintWriter(System.out);
String[] aStrings=br1.readLine().split(" ");
int a=Integer.parseInt(aStrings[0]);
int b=Integer.parseInt(aStrings[1]);
aa=a*b;
int cmax=Math.max(a, b);
int dmin=Math.min(a, b);
int e,f,g,h;
for(e=2;e<=dmin;e++) {
	f=(a-(e-1))*(b-(e-1));	
			aa=aa+f;	
}

for(e=1;e<=a;e++) {
	for(f=1;f<=b;f++) {
		if(e!=f) {
			bb=bb+(a-(e-1))*(b-(f-1));
		}
	}
}
System.out.println(aa+" "+bb);
}
  public static long aa=0;
  public static long bb=0;
 }
 

 

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

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

相关文章

使用Coding对vue项目进行自动化的部署 (亲测有用) coding部署vue项目

使用Coding对vue项目进行自动化的部署 &#xff08;亲测有用&#xff09; 登陆coding 官网 1. 新建项目看下面 这篇文字&#xff0c;新建 vue 项目和 java 一样 选择这个新建 选择代码仓库 点击确定 选择文本编辑器 把下面 内容 粘贴 进去 &#xff0c;然后改几个内容 服务器…

多维时序 | Matlab实现LSTM-Adaboost和LSTM多变量时间序列预测对比

多维时序 | Matlab实现LSTM-Adaboost和LSTM多变量时间序列预测对比 目录 多维时序 | Matlab实现LSTM-Adaboost和LSTM多变量时间序列预测对比预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | Matlab实现LSTM-Adaboost和LSTM多变量时间序列预测对比 模型…

Linux 内核page migration设计文档

概述 page migration设计之初是在numa system的各个node之间迁移physical pages&#xff0c;意味着进程页面的虚拟地址不会变化&#xff0c;物理地址发生改变&#xff0c;migration的目的将page迁移到临近的cpu上降低内存访问延迟。 页面迁移粗略步骤 A. In kernel use of m…

SpringBoot简单上手

spring boot 是spring快速开发脚手架&#xff0c;通过约定大于配置&#xff0c;优化了混乱的依赖管理&#xff0c;和复杂的配置&#xff0c;让我们用java-jar方式,运行启动java web项目 入门案例 创建工程 先创建一个空的工程 创建一个名为demo_project的项目&#xff0c;并且…

人员操作行为识别监测

人员操作行为识别监测实时监测人员的操作行为&#xff0c;人员操作行为识别监测通过yolov7深度学习算法网络模型&#xff0c;对前端采集人员操作行为的图像使用算法进行分析&#xff0c;识别出不符合规范的操作行为&#xff0c;并发出告警信号以提醒相关人员。在训练之前&#…

C++笔记之rolling counter(滚动计数器)

C笔记之rolling counter&#xff08;滚动计数器&#xff09; 一个 rolling counter&#xff08;滚动计数器&#xff09;是一个计数器&#xff0c;可以在给定的范围内不断增加&#xff0c;当达到最大值时会从最小值重新开始。 code review! 文章目录 C笔记之rolling counter&…

【Git】测试持续集成——Git+Gitee+PyCharm

文章目录 概述一、使用Gitee1. 注册账号2. 绑定邮箱3. 新建仓库4. 查看项目地址 二、安装配置Git1. 下载安装包2. 校验是否安装成功。3. 配置Git4. Git命令5. Git实操 三、PyCharmGit1. 配置Git2. Clone项目3. 提交文件到服务器4. 从服务器拉取文件 概述 持续集成&#xff08;…

【Mac】编译Spring 源码和Idea导入

今天我们开始Spring源码的阅读之旅。阅读Spring的源码的第一步当然是编译Spring源码。首先我们要去GitHub上将spring源码给clone下来。 笔者编译环境如下&#xff1a; Spring版本&#xff1a;5.28 https://github.com/spring-projects/spring-framework/tree/v5.2.8.RELEASE …

Linux(基础篇二)

Linux基础篇 Linux基础篇二5. 系统管理5.1 Linux中的进程和服务5.3 systemctl5.4 运行级别CentOS 6CentOS 7 5.5 关机重启命令 Linux基础篇二 5. 系统管理 5.1 Linux中的进程和服务 计算机中&#xff0c;一个正在执行的程序或命令&#xff0c;被叫做“进程”(process) 启动之…

软件测试知识点总结(一)

文章目录 前言一. 什么是软件测试二. 软件测试和软件调试的区别三. 软件测试和研发的区别四. 优秀的测试人员所应该具备的素质总结 前言 在现实生活中的很多场景下&#xff0c;我们都会进行测试。 比如买件衣服&#xff0c;我们需要看衣服是不是穿着好看&#xff0c;衣服材质如…

Django学习笔记-AcApp端授权AcWing一键登录

笔记内容转载自 AcWing 的 Django 框架课讲义&#xff0c;课程链接&#xff1a;AcWing Django 框架课。 AcApp 端使用 AcWing 一键授权登录的流程与之前网页端的流程一样&#xff0c;只有申请授权码这一步有一点细微的差别&#xff1a; 我们在打开 AcApp 应用之后会自动向 AcW…

Servlet的使用(JavaEE初阶系列17)

目录 前言&#xff1a; 1.Servlet API的使用 1.1HttpServlet 1.2HttpServletRequest 1.3HttpServletResponse 2.表白墙的更新 2.1表白墙存在的问题 2.2前后端交互接口 2.3环境准备 2.4代码的编写 2.5数据的持久化 2.5.1引入JDBC依赖 2.5.2创建数据库 2.5.3编写数…

云原生之使用Docker部署SSCMS内容管理系统

云原生之使用Docker部署SSCMS内容管理系统 一、SSCMS介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载SSCMS镜像五、部署SSCMS内容管理系统5.1 创建SSCMS容器5.2 检查SSC…

LabVIEW开发检测肌肉疾病的新技术

LabVIEW开发检测肌肉疾病的新技术 肌电图&#xff08;EMG&#xff09;是一种生物信号&#xff0c;可检测骨骼肌在收缩过程中产生的电流&#xff0c;以量化神经肌肉活动。了解肌电图信号需要了解骨骼肌以及允许它们产生生物电信号的机制。它还考虑了影响信号的众多系统和事件。…

Django基础5——ORM中间程序

文章目录 一、基本了解二、ORM基本操作2.1 连接数据库2.1.1 使用sqlite数据库2.1.2 使用MySQL数据库 2.2 对数据库操作2.2.1 增&#xff08;前端数据——>数据库&#xff09;2.2.2 查&#xff08;数据库——>前端展示&#xff09;2.2.3 改&#xff08;修改数据&#xff0…

【人脸考勤项目】

本项目主要是基于Opencv完成的人脸识别的考勤系统 人脸检测器的5种实现方法 方法一&#xff1a;haar方法进行实现&#xff08;以下是基于notebook进行编码&#xff09; # 步骤 # 1、读取包含人脸的图片 # 2.使用haar模型识别人脸 # 3.将识别结果用矩形框画出来# 导入相关包 …

自动驾驶感知传感器标定安装说明

1. 概述 本标定程序为整合现开发的高速车所有标定模块,可实现相机内参标定和激光、相机、前向毫米波 至车辆后轴中心标定,标定参数串联传递并提供可视化工具验证各个模块标定精度。整体标定流程如下,标定顺序为下图前标0-->1-->2-->3,相同编号标定顺序没有强制要求…

疲劳检测-闭眼检测(详细代码教程)

简介 瞌睡经常发生在汽车行驶的过程中&#xff0c;该行为害人害己&#xff0c;如果有一套能识别瞌睡的系统&#xff0c;那么无疑该系统意义重大&#xff01; 实现步骤 思路&#xff1a;疲劳驾驶的司机大部分都有打瞌睡的情形&#xff0c;所以我们根据驾驶员眼睛闭合的频率和…

微服务鉴权中心之网关配置SpringSecurity+oauth2

微服务鉴权中心流程如下&#xff1a; 1. 网关配置oauth2之TokenStore存储方式&#xff0c;此处用RedisTokenStore Configurationpublic class TokenConfig {Autowiredprivate RedisConnectionFactory redisConnectionFactory;Beanpublic TokenStore tokenStore() {return new …

生信分析Python实战练习 2 | 视频20

开源生信 Python教程 生信专用简明 Python 文字和视频教程 源码在&#xff1a;https://github.com/Tong-Chen/Bioinfo_course_python 目录 背景介绍 编程开篇为什么学习Python如何安装Python如何运行Python命令和脚本使用什么编辑器写Python脚本Python程序事例Python基本语法 数…