CCF-CSP真题202303-1田地丈量(Java满分题解)

1.题目详情

CCF-CSP真题202303-1田地丈量(Java满分题解)_第1张图片

2.思路:

观察图可知想要与规定的大小范围内重合的话,这个矩阵必须右侧是a和x2中较小的那个值减去0和x1中较大的那个值的差值大于0。y必须是b和y2中较小的那个值减去0和y1中较大的那个值也大于0才可以满足两个范围内有交集。

Java代码如下(100分)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        //2023.3-1  田地丈量
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int a = sc.nextInt();
        int b = sc.nextInt();
        int sum = 0;
        int x1, y1, x2, y2;
        int x, y;
        for (int i = 1; i <= n; i++) {
            x1 = sc.nextInt();
            y1 = sc.nextInt();
            x2 = sc.nextInt();
            y2 = sc.nextInt();
            x = Math.min(a, x2) - Math.max(0, x1);
            y = Math.min(b, y2) - Math.max(0, y1);
            if (x > 0 && y > 0) {
                sum += x * y;
            }
        }
        System.out.print(sum);
    }
}

你可能感兴趣的:(CCF-CSP历年真题,java,算法)