蓝桥杯2023省赛:矩阵总面积|模拟、数学(几何)

题目链接:

0矩形总面积 - 蓝桥云课 (lanqiao.cn)

说明:

参考文章:矩形总面积计算器:计算两个矩形的总面积,包括重叠区域_矩形r1的左下角坐标为x1, yl 、宽度为w1、高度为h1, 矩形r2的左下角坐标为x2,y2、宽-CSDN博客

看似简单,实际如果一种一种列举情况写if-else还挺麻烦的。首先很容易看出的是,两矩形不相交的情况:

x[4]<=x[1]||x[3]>=x[2]||y[3]>=y[2]||y[4]<=y[1]

以及一者包含另一者的情况:x[3]>=x[1]&&x[4]<=x[2]&&y[3]>=y[1]&&y[4]<=y[2]、x[3]<=x[1]&&x[4]>=x[2]&&y[3]<=y[1]&&y[4]>=y[2]

但是两者相交的情况,如果要用列举出来,情况非常多,至少以下这么多种情况(黑色为R1,其他颜色为R2):

所以需要考虑找规律。

按照参考文章的思路,我们需要找到高效率确定重叠区域的方法,二维图形不好想象,首先从两条直线来考虑重叠区域:

由图可知,右边界是两条直线右边界的较小值,左边界是两条直线左边界的较大值,在两个矩形的重叠区域的x方向上也是满足的。如果没有重叠区域,那么找出的左边界将会大于右边界。

由这个方法也可以找到y方向上的上下边界,由此就可以计算出重叠区域的面积,但要判断一下区域是否存在(也就是判断边界差值是否大于0)。

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e9;
int ans = 0;
int x[5],y[5]; signed main() {cin.tie(0);cout.tie(0);for(int i=1;i<5;i++){cin>>x[i]>>y[i];}int s1=(y[4]-y[3])*(x[4]-x[3]),s2=(y[2]-y[1])*(x[2]-x[1]);int l,r;l=min(x[2],x[4])-max(x[1],x[3]) ;r=min(y[2],y[4])-max(y[1],y[3]);if(l>0&&r>0){ans=s1+s2-l*r;}else{ans=s1+s2;}cout << ans;return 0;
}

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

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

相关文章

【开发环境搭建篇】Redis客户端安装和配置

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

Linux系统资源管理

Linux系统资源命令 在Linux中查看系统资源常用命令有哪些 在Linux中&#xff0c;系统资源是指计算机硬件、软件和网络设备等可以利用的一切物质和能量。Linux中的系统资源包括&#xff1a; CPU&#xff08;中央处理器&#xff09;&#xff1a;用于处理计算机中的指令和数据的…

【OJ比赛日历】快周末了,不来一场比赛吗? #03.23-03.29 #16场

CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号会推送最新的比赛消息&#xff0c;欢迎关注&#xff01; 以下信息仅供参考&#xff0c;以比赛官网为准 目录 2024-03-23&#xff08;周六&#xff09; #7场比赛2024-03-24…

MQTTnet实现客户端连接

使用MQTTnet(Version=4.3.1.873)库实现多客户端连接多服务端,同时实现断线重连; 如下图所示,开启3个客户端连接3个服务端,当其一个服务端出现异常(服务停止,网络异常无法连接)导致连接断开时,实现每5秒连接一次 MQTT连接服务核心类:业务需求是一个客户端对应的一个MQ…

小迪安全43WEB 攻防-通用漏洞任意文件下载删除重装敏感读取黑白审计

#知识点&#xff1a; 1、文件操作类安全问题 2、文件下载&删除&读取 3、白盒&黑盒&探针分析 #详细点&#xff1a; 文件读取&#xff1a;基本和文件下载利用类似 文件下载&#xff1a;利用下载获取源码或数据库配置文件及系统敏感文件为后续出思路 …

【unity之UI专题】GUI(IMGUI)详解

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

这个简单的生活方式,为你带来满满的幸福感

在今天文章的开头&#xff0c;我想请你思考一个问题&#xff1a;影响幸福感的最大因素是什么&#xff1f; 不妨先想一想&#xff0c;再往下拉&#xff0c;继续阅读。 可能不少朋友的回答&#xff0c;会是财富、事业、理想、生活环境、社会地位…… 这些因素当然对幸福感都非常重…

【OpenGL手册19】几何着色器

目录 一、说明 二、渲染管线的逻辑 三、几何着色器 四、使用几何着色器 五、造几个房子 六、几何着色器渲染爆破物体 一、说明 如果说用顶点和片段着色器干了什么&#xff0c;其实不多。加入几何着色器&#xff0c;能够加大渲染能力&#xff0c;简化数据结构&#xff0c;…

解读“CFMS中国闪存市场峰会”存储技术看点-1

昨天CFMS中国闪存市场峰会在深圳举行&#xff0c;小编本来计划前往现场参加&#xff0c;但由于有事冲突未能如期前往&#xff0c;非常遗憾&#xff01; 本次峰会的主题是“存储周期激发潜能”。在闪存市场的供需关系逐渐恢复正常的阶段&#xff0c;闪存市场如何发展变化&#x…

【leetcode】67.二进制求和

前言&#xff1a;剑指offer刷题系列 问题&#xff1a; 给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 示例&#xff1a; 输入&#xff1a;a "1010", b "1011" 输出&#xff1a;"10101"思路1&#xff1a; …

【五 (3)统计学知识-概型与概率分布python代码实现】

目录 文章导航一、概率基础与性质二、概型模型1、古典概型2、几何概型3、伯努利试验概型 三、组合和排序1、组合2、排序 四、概率分布1、离散型分布①伯努利分布②二项分布③泊松分布 2、连续型分布①均匀分布②指数分布③正态分布/高斯分布④对数正态分布⑥幂律分布⑦帕累托分…

ECharts5 概念篇2

数据转换 数据转换基础使用 在 echarts 中&#xff0c;数据转换是依托于数据集&#xff08;dataset&#xff09;来实现的. 我们可以设置 dataset.transform 来表示&#xff0c;此 dataset 的数据&#xff0c;来自于此 transform 的结果。下面是上述例子的效果&#xff0c;三个饼…