• WUST Online Judge


    2175: 层叠消融

    Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lld
    Submitted: 118  Accepted: 78
    [Submit][Status][Web Board]

    Description

    n张矩形纸片叠在一起,偶数张叠加的区域会消去,奇数张叠加的区域会保留,求最后保留的区域的总面积。矩形的边平行于坐标轴。

    Input

    多组输入,每组格式如下:

    第一行1个整数n。

    接下来n行,每行4个整数x1, y1, x2, y2。( x1, y1)为矩形左下顶点位置,( x2, y2)为矩形右上顶点位置。

    数据范围:测试组数不超过10; 1<= n <= 100; -50 <= x1 < x2 <= 50; -50 <= y1 < y2 <= 50;

    Output

    每组输出一行,一个整数,表示最后保留的区域的总面积。

    Sample Input

    2
    -2 -1 2 1
    -1 -2 1 2
    3
    1 1 6 3
    2 1 4 5
    3 2 5 4
    

    Sample Output

    8
    10
    

    Author

    刘银虎

    代码如下:

    #include <stdio.h>
    
    int main() {
    	int a[105][105];
    	int i, j, k, n, sum, x1[100], y1[100], x2[100], y2[100];
    	while (scanf("%d", &n) != EOF) {
    		sum = 0;
    		memset(a, 0, sizeof(a));
    		for (i = 0; i < n; i++) {
    			scanf("%d%d%d%d", &x1[i], &y1[i], &x2[i], &y2[i]);
    			for (j = x1[i] + 50; j < x2[i] + 50; j++)
                    for (k = y1[i] + 50; k < y2[i] + 50; k++)
                        a[j][k]++;
    		}
    		for (i = 0; i < 105; i++)
    			for (j = 0; j < 105; j++)
    				if (a[i][j] % 2 != 0)
    					sum++;
    		printf("%d
    ", sum);
    	}
    	return 0;
    }
    
    作者:McR
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    android 的通知管理
    java 反射机制
    java基础知识梳理
    spring 知识梳理
    Orange's_1_win7下搭建环境
    编写安全代码:死循环
    我的kindle书单
    [更新Github地址]python学习,自己写了个简单聊天工具mychat
    给VIM和Terminal配色:Solarized
    Hive学习之路 (八)Hive中文乱码
  • 原文地址:https://www.cnblogs.com/mcr-tcp/p/9170752.html
Copyright © 2020-2023  润新知