题目大意:

在农场的任何一个“轴向对齐”的长方形区域(即垂直和水平方向)种植草坪。

现种植了N(1≤ N ≤10)个不同的矩形区域,其中一些甚至可能重叠。

Input

Multiple test cases. For each case:

* Line 1: The integer N.

* Lines 2..1+N: Each line contains four space-separated integers x1  y1  x2  y2 specifying a rectangular region with upper-left corner (x1y1) and lower-right corner (x2y2).  All coordinates are in the range -10,000...10,000.

Output

For each case, output one line: The total area covered by grass.

Sample Input

2
0 5 4 1
2 4 6 2

Sample Output

20

用矩形切割的方法 看代码就懂

#include <bits/stdc++.h>
using namespace std;
int x1[],x2[],m1[],m2[],sum;
void cur(int len1,int len2,int hig1,int hig2,int i)
{
if(len1>=len2||hig1<=hig2) return;
while(i>=&&(len1>=x2[i]||hig1<=m2[i]||len2<=x1[i]||hig2>=m1[i]))
i--;
if(i<)
{
sum+=(len2-len1)*(hig1-hig2);
return;
}
if(len1<x1[i])
{
cur(len1,x1[i],hig1,hig2,i-);
len1=x1[i];
}
if(len2>x2[i])
{
cur(x2[i],len2,hig1,hig2,i-);
len2=x2[i];
}
if(hig1>m1[i])
{
cur(len1,len2,hig1,m1[i],i-);
hig1=m1[i];
}
if(hig2<m2[i])
{
cur(len1,len2,m2[i],hig2,i-);
hig2=m2[i];
}
return;
}
int main()
{
int n;
while(~scanf("%d",&n))
{
sum=;
for(int i=;i<n;i++)
scanf("%d%d%d%d",&x1[i],&m1[i],&x2[i],&m2[i]);
for(int i=;i<n;i++)
cur(x1[i],x2[i],m1[i],m2[i],i-);
printf("%d\n",sum);
} return ;
}

最新文章

  1. View动画和属性动画
  2. Zend Guard Loader/Zend Loader是干什么的
  3. 安装生物信息学软件-bowtie2
  4. Java使用JSP Tag Files &amp; JSP EL Functions打造你自己的页面模板
  5. R语言简单入门
  6. 【M23】考虑使用其他程序库
  7. 【编程之美】计算1-N中含1的个数
  8. django中form表单的提交:
  9. Hibernate:1对1关系总结。
  10. 黑马程序员——读取Plist文件
  11. ulimit 说明
  12. 初探JavaScript魅力(四)
  13. asp.net微软图表控件使用示例
  14. UVa442 Matrix Chain Multiplication(栈)
  15. 转:StarUML3.0的破解方法
  16. 深谈CDQ分治
  17. CAlayer一
  18. bash shell 合并多个文件内容到一个文件、查看多少行代码
  19. Sql 列转行 三种方法对比
  20. Java获取系统环境信息

热门文章

  1. angular-file-upload插件的使用简单介绍
  2. Linux NIO 系列(04-2) poll
  3. 在规定的时间内出现动画.html
  4. 41-python基础-python3-字符串-转义字符
  5. Android开发之程序猿必需要懂得Android的重要设计理念
  6. 安装FTP
  7. Apache Solr远程命令执行
  8. idae父子项目Test执行报Result Maps collection already contains value for xxx
  9. IDEA webapp文件夹不识别解决方案
  10. 群晖修改启用root账号密码