矩形总面积(第十四届蓝桥杯JavaB组省赛真题)

测试用例范围比较大,所以全部用long类型,如果用int类型只能通过60%,建议在内存和运行时间允许的情况下,比赛题都用long。

重点在于计算相交的面积,这里找的两个相交点是左上角(m1,n1)和右下角(m2,n2)

java 复制代码
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        long x1 = scan.nextInt();
        long y1 = scan.nextInt();
        long x2 = scan.nextInt();
        long y2 = scan.nextInt();
        long x3 = scan.nextInt();
        long y3 = scan.nextInt();
        long x4 = scan.nextInt();
        long y4 = scan.nextInt();

        long m1 = Math.max(Math.min(x1, x2), Math.min(x3, x4));
        long n1 = Math.min(Math.max(y1, y2), Math.max(y3, y4));
        long m2 = Math.min(Math.max(x1, x2), Math.max(x3, x4));
        long n2 = Math.max(Math.min(y1, y2), Math.min(y3, y4));

        long sum = 0;
        if (m1 < m2 && n1 > n2)
            sum = (m1 - m2) * (n1 - n2);
        long res = Math.abs((y2 - y1) * (x2 - x1)) + Math.abs((y3 - y4) * (x3 - x4)) + sum;
        System.out.println(res);
    }
}
相关推荐
a31582380631 分钟前
Android Framework开发知识点整理
android·java·linux·服务器·framework·android源码开发
是苏浙1 小时前
蓝桥杯备战day3
蓝桥杯
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 个人健康管理系统为例,包含答辩的问题和答案
java·spring boot
局外人Inside1 小时前
PostProcessingBeanDeserializer 使用指南
java
郑州光合科技余经理1 小时前
基于PHP:海外版同城O2O系统多语言源码解决方案
java·开发语言·git·spring cloud·uni-app·php·uniapp
IT_Octopus1 小时前
Java GZip 压缩实践 +实践思考 +进一步压榨性能和存储方案思考:Protobuf+ GZip
java·spring boot
毕设源码-郭学长2 小时前
【开题答辩全过程】以 高校教材大管家系统为例,包含答辩的问题和答案
java·spring boot
Gavin在路上2 小时前
DDD之用事件风暴重构“电商订单履约”(11)
java·前端·重构
AnAnCode2 小时前
ECS 架构 (Entity Component System) - 数据导向编程快速入门
java·架构·游戏服务器
qq_12498707532 小时前
基于SpringBoot+vue的小黄蜂外卖平台(源码+论文+部署+安装)
java·开发语言·vue.js·spring boot·后端·mysql·毕业设计