矩形面积交

简介: 矩形面积交

问题描述

  平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。

输入格式

  输入仅包含两行,每行描述一个矩形。

  在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。

输出格式

  输出仅包含一个实数,为交的面积,保留到小数后两位。

样例输入

1 1 3 3

2 2 4 4

样例输出

1.00

image.png

本题的关键是花几个图找规律,

规律是:(假设相交)如果找左上角坐标其实就是在找那个1号点,找左下角其实就是找那个2号点,如图所示。

本质就是坐标比大小,比如找1号点的x坐标,先找到矩形中自己的x坐标进行比较找到大的,然后再在上一步中找到的x坐标选出比较小的那个。

#include<stdio.h>
#define max(x,y) ((x)>(y)?(x):(y))
#define min(x,y) ((x)<(y)?(x):(y))
int main(){
    double x1,y1,x2,y2;    //矩形1
    double x3,y3,x4,y4;    //矩形2
    double m1,n1;        //交集左上角坐标.
    double m2,n2;        //交集右下角坐标.
    scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
    scanf("%lf%lf%lf%lf",&x3,&y3,&x4,&y4);
    m1 = max(min(x1,x2),min(x3,x4));
    n1 = max(min(y1,y2),min(y3,y4));
    m2 = min(max(x1,x2),max(x3,x4));
    n2 = min(max(y1,y2),max(y3,y4));
    if(m2>m1 && n2>n1)
        printf("%.2f\n",(m2 - m1)*(n2 - n1));
    else
        printf("0.00\n");
    return 0;
} 

相关文章
|
算法 安全 Linux
Linux---(三)基本指令大全
Linux---(三)基本指令大全
285 1
|
网络架构
一文来带你了解 Flutter MaterialApp
一文来带你了解 Flutter MaterialApp
342 1
一文来带你了解 Flutter MaterialApp
|
10月前
|
人工智能 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 7.4 应用实践之 AI大模型外脑
PolarDB向量数据库插件通过实现通义大模型AI的外脑,解决了通用大模型无法触达私有知识库和产生幻觉的问题。该插件允许用户将新发现的知识和未训练的私有知识分段并转换为向量,存储在向量数据库中,并创建索引以加速相似搜索。当用户提问时,系统将问题向量化并与数据库中的向量进行匹配,找到最相似的内容发送给大模型,从而提高回答的准确性和相关性。此外,PolarDB支持多种编程语言接口,如Python,使数据库具备内置AI能力,极大提升了数据处理和分析的效率。
461 4
|
存储 安全 算法
MD5的日常实践应用:确保数据完整性与基础安全校验
**MD5概览:** 作为过时但仍然流行的散列函数,MD5用于生成数据固定长度的散列,常用于文件完整性校验和非安全密码验证。虽因易受碰撞攻击而不适于安全用途,但在低敏感场景下仍有应用。例如,Python代码展示如何计算文件MD5校验和及模拟MD5密码验证。不过,对于高安全需求,推荐使用SHA-256等更安全的算法。【6月更文挑战第17天】
1184 1
CNN+GRU的网络攻击检测识别详细教学
CNN+GRU的网络攻击检测识别详细教学
318 0
CNN+GRU的网络攻击检测识别详细教学
|
设计模式 Dubbo NoSQL
终于拿到了爆火全网的进一线大厂程序员必看的1700道java面试题
爆火全网的进一线大厂程序员必看的1700道java面试题到底有多牛? 牛不牛不敢说,但是有好多程序员是靠这一套1700道高频面试题,顺利收到很多大厂offer! 以至于,到现在为止,大厂都开始按照这一套1700道面试题来对程序员进行考核! 这1700道java面试题包含的内容有:java基础、JVM、多线程、MySQL、spring、springboot、springcloud、dubbo、mybatis、redis、网络IO、Linux、MQ、zookeeper、netty、设计模式、算法、大数据相关知识、项目方面;
|
机器学习/深度学习 算法 数据挖掘
【多标签文本分类】Large Scale Multi-label Text Classification with Semantic Word Vectors
【多标签文本分类】Large Scale Multi-label Text Classification with Semantic Word Vectors
295 0
【多标签文本分类】Large Scale Multi-label Text Classification with Semantic Word Vectors
|
Java 关系型数据库 MySQL
springboot整合mybatis(配置模式+注解模式)
springboot整合mybatis 一.简单介绍 二具体配置 2.1.配置相关的依赖. 2.2 写.mapper、controller、service 2.2.1mapper文件 2.2.2service文件 2.2.2controller文件 2.3配置相关文件 三、结果截图 四、可能遇到的报错 SpringBoot连接数据库报错:Access denied for user ‘root‘@‘localhost‘ (using password: YES)
881 0
springboot整合mybatis(配置模式+注解模式)
|
存储 Linux Shell
Linux根文件系统(rootfs原理详解)(中)
Linux根文件系统(rootfs原理详解)(中)
2126 0
|
物联网 JavaScript 数据可视化
快速搭建室外停车场
大嘎好: 今天来快速搭建一个室外停车场的三维场景。 原料: https://iot.console.aliyun.com/scene 阿里云物联网三维可视化平台https://bim-core-prod.oss-cn-shanghai.aliyuncs.com/CampusBuilder/CampusBuilderx64-v1.2.1.198-cn.exe 模型搭建工具 操作步骤: 1.模型编辑器安装好之后创建一个场景。
2106 0