201409-2 画图 Java

思路:
法1:计算每个矩形的小方块,去掉重复的
法2:二维数组,需要涂色就置flag为1,最后遍历输出,不会有重复计算

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean [][] flag = new boolean[105][105];
		int count = 0;
		for(int i=0;i<n;i++) {
			int x1 = sc.nextInt();
			int y1 = sc.nextInt();
			int x2 = sc.nextInt();
			int y2 = sc.nextInt();
			//矩形全部涂色
			for(int j=y1;j<y2;j++) {
				for(int k=x1;k<x2;k++) {
					flag[j][k] = true;
				}
			}
		}
		for(int i=0;i<flag.length;i++) {//遍历全部行数
			for(int j=0;j<flag[i].length;j++) {//遍历全部列数
				if(flag[i][j]) {//只会算一次
					count++;
				}
			}
		}
		sc.close();
		System.out.println(count);
	}

}
posted @ 2020-02-21 21:26  菜鸡A  阅读(165)  评论(0编辑  收藏  举报