博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2149 矩形周长
阅读量:6648 次
发布时间:2019-06-25

本文共 1227 字,大约阅读时间需要 4 分钟。

2149 矩形周长

 

USACO

 时间限制: 1 s
 空间限制: 16000 KB
 题目等级 : 大师 Master
 查看运行结果
 
 
题目描述 
Description

N(N<5000) 张矩形的海报,照片和其他同样形状的图片贴在墙上。它们的边都是垂直的或水平的。每个矩形可以部分或者全部覆盖其他矩形。所有的矩形组成的集合的轮廓称为周长。写一个程序计算周长。

图 1 是一个有 7 个矩形的例子:

图 1.一个 7 个矩形的集合

对应的轮廓为图 2 所示的所有线段的集合:

图 2. 矩形集合的轮廓

所有矩形的顶点坐标均为整数。所有的坐标都在 [-10000,10000] 的范围内,并且任何一个矩形面积都为整数。结果的值可能需要 32 位有符号整数表示。

输入描述 
Input Description

第1行: N,张贴在墙上的矩形的数目。

第 2..N+1行 接下来的N行中,每行都有两个点的坐标,分别是矩形的左下角坐标和右上角坐标。每一个坐标由 X 坐标和 Y 坐标组成。

输出描述 
Output Description

只有一行,为一个非负整数,表示输入数据中所有矩形集合的轮廓长度。

样例输入 
Sample Input
7-15 0 5 10-5 8 20 2515 -4 24 140 -6 16 42 15 10 2230 10 36 2034 0 40 16
样例输出 
Sample Output
228
数据范围及提示 
Data Size & Hint

范围如题所述

分类标签 Tags 

 
/*不写点什么总是不好的,但我又懒,转载zjk's文字解析:   这道题暴力竟然可以过,可能是数据比较弱,就是把矩形拆成两条横边和纵边,然后暴力给一条边上的每一个点加权值,  如果用线段树的话,可能是用线段树维护区间和吧,貌似很麻烦的样子。  但是这个题有很多细节需要注意(扫描线的题大都有很多细节)。  为了使包含关系的边只出现一次,再加入左边时,要在区间权值为空(即以前未出现过包含这条边的边)时才更新答案,  另外在排序时如果位置相同,把左边排在前面,这是为了解决两个矩形前后重合的情况。 */#include
#include
#include
using namespace std;const int N=1e4+10;struct node{ int l,r,h,id; bool operator < (const node &a)const{ return h==a.h?id

 

转载于:https://www.cnblogs.com/shenben/p/6281420.html

你可能感兴趣的文章
Android中的Handler的机制与用法详解
查看>>
【算法学习笔记】18.暴力求解法06 隐式图搜索2 八数码问题 未启发
查看>>
「小程序JAVA实战」运行微信官方demo(四)
查看>>
jqGrid基本用法与示例
查看>>
spring @Bean注解的使用
查看>>
Vmware Workstation及Centos6.8 的安装
查看>>
发生未知错误17,解决办法
查看>>
EL与OGNL区别
查看>>
第7章课后总结
查看>>
Python os模块,常用函数和类
查看>>
C#窗体加载和控件加载不同步导致控件闪烁
查看>>
js 2
查看>>
PHP支付宝手机网站支付功能
查看>>
Lambda 表达式
查看>>
[杂谈]记第一次出差有感
查看>>
block的作用
查看>>
poj1163 数字三角形 (动态规划)
查看>>
层序中序生成树
查看>>
idea编辑器激活码
查看>>
CSS中的浮动和定位
查看>>