蓝桥杯-油漆面积
2017-12-13 18:28
197 查看
油漆面积
X星球的一批考古机器人正在一片废墟上考古。
该区域的地面坚硬如石、平整如镜。
管理人员为方便,建立了标准的直角坐标系。
每个机器人都各有特长、身怀绝技。它们感兴趣的内容也不相同。
经过各种测量,每个机器人都会报告一个或多个矩形区域,作为优先考古的区域。
矩形的表示格式为(x1,y1,x2,y2),代表矩形的两个对角点坐标。
为了醒目,总部要求对所有机器人选中的矩形区域涂黄色油漆。
小明并不需要当油漆工,只是他需要计算一下,一共要耗费多少油漆。
其实这也不难,只要算出所有矩形覆盖的区域一共有多大面积就可以了。
注意,各个矩形间可能重叠。
本题的输入为若干矩形,要求输出其覆盖的总面积。
输入格式:
第一行,一个整数n,表示有多少个矩形(1<=n<10000)
接下来的n行,每行有4个整数x1 y1 x2 y2,空格分开,表示矩形的两个对角顶点坐标。
(0<= x1,y1,x2,y2 <=10000)
输出格式:
一行一个整数,表示矩形覆盖的总面积。
思路比较简单,直接暴力遍历所有矩形,被矩形包围的点则vis数组置1,然后遍历vis全部数组,上代码
X星球的一批考古机器人正在一片废墟上考古。
该区域的地面坚硬如石、平整如镜。
管理人员为方便,建立了标准的直角坐标系。
每个机器人都各有特长、身怀绝技。它们感兴趣的内容也不相同。
经过各种测量,每个机器人都会报告一个或多个矩形区域,作为优先考古的区域。
矩形的表示格式为(x1,y1,x2,y2),代表矩形的两个对角点坐标。
为了醒目,总部要求对所有机器人选中的矩形区域涂黄色油漆。
小明并不需要当油漆工,只是他需要计算一下,一共要耗费多少油漆。
其实这也不难,只要算出所有矩形覆盖的区域一共有多大面积就可以了。
注意,各个矩形间可能重叠。
本题的输入为若干矩形,要求输出其覆盖的总面积。
输入格式:
第一行,一个整数n,表示有多少个矩形(1<=n<10000)
接下来的n行,每行有4个整数x1 y1 x2 y2,空格分开,表示矩形的两个对角顶点坐标。
(0<= x1,y1,x2,y2 <=10000)
输出格式:
一行一个整数,表示矩形覆盖的总面积。
例如, 输入: 3 1 5 10 10 3 1 20 20 2 7 15 17 程序应该输出: 340
再例如,15+24+120 159 输入: 3 5 2 10 6 2 7 12 10 8 1 15 15 程序应该输出: 128
思路比较简单,直接暴力遍历所有矩形,被矩形包围的点则vis数组置1,然后遍历vis全部数组,上代码
/* Name:蓝桥杯-油漆面积 Copyright: Author: 枫叶 Date: 13.12.17 18:26 Description: */ #include<iostream> #include <string.h> #define N 10001 using namespace std; int A [4];//存储矩形顶点 int vis ;//存储矩形围起来的点 void swap(int &a,int &b)//交换函数 { int t;t=a;a=b;b=a; } void place(int k)//矩形围起来的点之一 { if(A[k][0]>A[k][2]) { swap(A[k][0],A[k][2]); swap(A[k][1],A[k][3]); } for(int i=A[k][0];i<A[k][2];i++) { for(int j=A[k][1];j<A[k][3];j++) { if(vis[i][j]==1)//如果矩形内点已经计算,则跳过 continue; vis[i][j]=1;//置1表示矩形包括的点 } } } int main() { int n,sum=0; cin>>n; memset(A,0,sizeof(int)*N*N);//数组全部元素置0 memset(vis,0,sizeof(int)*N*N);//数组全部元素置0 for(int i=0;i<n;i++) { cin>>A[i][0]>>A[i][1]>>A[i][2]>>A[i][3];//输入矩形顶点 place(i);//计算 } for(int i=0;i<=10000;i++) { for(int j=0;j<=10000;j++) { sum+=vis[i][j];//计算所有矩形围起来的点 } } cout<<sum<<endl; return 0; }
相关文章推荐
- 蓝桥杯第八届省赛JAVA真题----油漆面积
- 蓝桥杯 基础 矩形面积交
- 蓝桥杯 入门训练 圆的面积
- 蓝桥杯_基础练习《矩形面积交---26》
- 蓝桥杯:入门训练 圆的面积
- 蓝桥杯 ADV-214 算法提高 3-3求圆面积表面积体积
- 蓝桥杯 入门训练 圆的面积 JAVA
- 蓝桥杯- 入门训练 圆的面积
- (蓝桥杯题)基础练习 矩形面积交
- 蓝桥杯练习题 BEGIN-3 圆的面积
- 【蓝桥杯】【圆的面积】
- 蓝桥杯 求圆的面积 保留7位
- 蓝桥杯:矩阵面积交
- 蓝桥杯-- 入门训练 圆的面积
- 蓝桥杯算法 入门 圆的面积
- 蓝桥杯 入门训练 圆的面积
- 蓝桥杯(Java) 入门训练 圆的面积
- 蓝桥杯入门训练 圆的面积
- 【蓝桥杯】 入门训练 圆的面积
- 蓝桥杯 基础练习VIP 矩形面积交(java)