题目名称 834. [USACO 3.1]形成的区域 Shaping Regions
输入输出 rect1.in/out
难度等级 ★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 11
题目来源 王国正 于2012-07-03加入修改该题
开放分组 全部用户
提交状态
分类标签
USACO 离散化 线段树 浮水法
分享题解
通过:28, 提交:67, 通过率:41.79%
王宸 100 0.000 s 0.00 MiB C++
ノラ 100 0.005 s 0.34 MiB C++
CD 100 0.005 s 0.34 MiB C++
ZXCVBNM_ 100 0.005 s 0.34 MiB C++
张子昂 100 0.005 s 0.34 MiB C++
pascal 100 0.006 s 0.22 MiB Pascal
王梦迪 100 0.006 s 0.34 MiB C++
薛兆麟 100 0.006 s 0.65 MiB C++
宋远迪 100 0.007 s 3.17 MiB C++
王庞博 100 0.008 s 0.19 MiB Pascal
关于 形成的区域 Shaping Regions 的近10条评论(全部评论)
我以为没有1这个颜色....没被覆盖的就叫1呢...
CSU_Turkey
2017-10-10 18:27 6楼
Orzzz10ms内的写法,本蒻只会n^2logn的离散化+平衡树维护扫描线,快200ms了
liu_runda
2016-05-12 18:00 5楼
VIP 新技能浮水法,好棒~
沉迷学习的假的Keller
2016-04-14 20:23 4楼
1L +1……
SPA
2016-02-17 21:02 3楼
回复 @mikumikumi :
我觉得23333333333333333更好一些。。。
洛克索耶夫
2016-02-17 20:14 2楼
A和B搞反居然过了9个点,哈哈哈哈哈哈哈哈(馆长笑);
mikumikumi
2015-04-30 21:32 1楼

834. [USACO 3.1]形成的区域 Shaping Regions

★   输入文件:rect1.in   输出文件:rect1.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

$n$ 个不同颜色且不透明的长方形被放在一张宽为 $a$ 长为 $b$ 的白纸上。它们的边于白纸的边缘平行,且所有的长方形都放置在白纸内。

现在将他们重叠,重叠后会出现不同形状的各种颜色,你需要求出每种颜色的面积。

白纸的左下角的坐标为原点 $(0,0)$,且坐标轴平行于白纸边缘。

【输入格式】

输入数据共 $n+1$ 行。

第一行三个整数,$a,b,n$。

第二到 $n+1$ 行,每行五个整数,$llx,lly,urx,ury,color$,表示一个长方形的左下角和右上角的坐标以及颜色编号。注:颜色 $1$ 和底部白纸的颜色相同。

【输出格式】

一个所有能被看到颜色和该颜色的总面积的汇总,一行内格式为编号和面积,即使颜色的区域不是连续的,仍可以输出,并且按 $color$ 的增序排序输出,不要输出没有区域的颜色。

【样例输入】

20 20 3
2 2 18 18 2
0 8 19 19 3
8 0 10 19 4

【样例输出】

1 91
2 84
3 187
4 38

【样例说明】

白纸经过各层覆盖后,各种颜色的面积分别为 $91,84,187,38$。

【数据规模与约定】

对于 $100$% 的数据,$1 \leq n \leq 10^3,1 \leq a,b \leq 10^4,1 \leq llx,lly,urx,ury \leq a,b,1 \leq color \leq n+1$。

【来源】

USACO 3.1