• 201409-2 画图


    题目传送门:http://118.190.20.162/view.page?gpid=T15

    问题描述

    试题编号: 201409-2
    试题名称: 画图
    时间限制: 1.0s
    内存限制: 256.0MB
    问题描述:
    问题描述
      在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。
      下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到(4, 4),用绿色和紫色表示。第二个矩形是(2, 3)到(6, 5),用蓝色和紫色表示。图中,一共有15个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一次。在实际的涂色过程中,所有的矩形都涂成统一的颜色,图中显示不同颜色仅为说明方便。

      给出所有要画的矩形,请问总共有多少个单位的面积被涂上颜色。
    输入格式
      输入的第一行包含一个整数n,表示要画的矩形的个数。
      接下来n行,每行4个非负整数,分别表示要画的矩形的左下角的横坐标与纵坐标,以及右上角的横坐标与纵坐标。
    输出格式
      输出一个整数,表示有多少个单位的面积被涂上颜色。
    样例输入
    2
    1 1 4 4
    2 3 6 5
    样例输出
    15
    评测用例规模与约定
      1<=n<=100,0<=横坐标、纵坐标<=100。

    题解:

    #include<cstring>
    #include<iostream>
    using namespace std;
    
    const int MAXN = 100 + 5;
    bool p[MAXN][MAXN];
    
    int main() {
        int n, x1, y1, x2, y2, ans = 0;
        cin >> n;
        memset(p, false, sizeof(p));
        while (n--) {
            cin >> x1 >> y1 >> x2 >> y2;
            for (int i = x1; i < x2; i++)
                for (int j = y1; j < y2; j++)
                    p[i][j] = true;
        }
        for (int i = 0; i < MAXN; i++) 
            for (int j = 0; j < MAXN; j++) 
                if (p[i][j]) 
                    ans++;
        cout << ans << endl;
        return 0;
    }
  • 相关阅读:
    苹果一体机发射Wi-Fi
    iphone 屏蔽系统自动更新,消除设置上的小红点
    data parameter is nil 异常处理
    copy与mutableCopy的区别总结
    java axis2 webservice
    mysql 远程 ip访问
    mysql 存储过程小问题
    mysql游标错误
    is not writable or has an invalid setter method错误的解决
    Struts2中关于"There is no Action mapped for namespace / and action name"的总结
  • 原文地址:https://www.cnblogs.com/gzu_zb/p/10533304.html
Copyright © 2020-2023  润新知