题目名称 834. [USACO 3.1]形成的区域 Shaping Regions
输入输出 rect1.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 11
题目来源 Gravatarsywgz 于2012-07-03加入
开放分组 全部用户
提交状态
分类标签
USACO 离散化 线段树 浮水法
分享题解
通过:28, 提交:67, 通过率:41.79%
Gravatar521 100 0.000 s 0.00 MiB C++
Gravatar隨風巽 100 0.005 s 0.34 MiB C++
GravatarZXCVBNM_1 100 0.005 s 0.34 MiB C++
GravatarMealy 100 0.005 s 0.34 MiB C++
Gravatarmikumikumi 100 0.005 s 0.34 MiB C++
GravatarWBCB 100 0.006 s 0.22 MiB Pascal
Gravatarcstdio 100 0.006 s 0.34 MiB C++
GravatarQILIN 100 0.006 s 0.65 MiB C++
GravatarCirno 100 0.007 s 3.17 MiB C++
Gravatar钨铅 100 0.008 s 0.19 MiB Pascal
关于 形成的区域 Shaping Regions 的近10条评论(全部评论)
我以为没有1这个颜色....没被覆盖的就叫1呢...
GravatarCSU_Turkey
2017-10-10 18:27 6楼
Orzzz10ms内的写法,本蒻只会n^2logn的离散化+平衡树维护扫描线,快200ms了
Gravatarliu_runda
2016-05-12 18:00 5楼
VIP 新技能浮水法,好棒~
Gravatar沉迷学习的假的Keller
2016-04-14 20:23 4楼
1L +1……
GravatarSPA
2016-02-17 21:02 3楼
回复 @mikumikumi :
我觉得23333333333333333更好一些。。。
Gravatar洛克索耶夫
2016-02-17 20:14 2楼
A和B搞反居然过了9个点,哈哈哈哈哈哈哈哈(馆长笑);
Gravatarmikumikumi
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