试题编号: | 201409-2 |
试题名称: | 画图 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。
输入格式 输入的第一行包含一个整数n,表示要画的矩形的个数。 输出格式 输出一个整数,表示有多少个单位的面积被涂上颜色。 样例输入 2 样例输出 15 评测用例规模与约定 1<=n<=100,0<=横坐标、纵坐标<=100。 |
将各个正方形面积累加起来,然后去掉重叠部分。哪些部分重叠也需要进行标记后才能判定。
数据量不大,直接循环枚举即可~
#include <iostream>
#include <cstring>
using namespace std;
const int N = 100;
bool flag[N+1][N+1];
int main(){int n, x1, y1, x2, y2, sum=0;// 变量初始化memset(flag, false, sizeof(flag));// 输入数据,计算处理cin >> n;for(int i=1; i<=n; i++) {// 输入数据cin >> x1 >> y1 >> x2 >> y2;// 累加面积sum += (x2 - x1) * (y2 - y1);// 标记和去除重叠部分for(int i=x1; i<x2; i++)for(int j=y1; j<y2; j++) {if(flag[i][j])sum--;flag[i][j] = true;}}// 输出结果cout << sum << endl;return 0;
}
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态