题目名称 258. [NOI 1997]卫星覆盖
输入输出 satellitecover.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 20
题目来源 GravatarBYVoid 于2009-02-11加入
开放分组 全部用户
提交状态
分类标签
NOI 离散化 计算几何 线段树
分享题解
通过:17, 提交:38, 通过率:44.74%
Gravatarcstdio 100 0.006 s 0.30 MiB C++
GravatarWang Yen Jen 100 0.007 s 0.29 MiB C++
GravatarceerRep 100 0.010 s 0.29 MiB C++
GravatarBYVoid 100 0.011 s 0.26 MiB C++
Gravatar张灵犀不和我一般见识真可怕呢(笑 100 0.013 s 0.29 MiB C++
Gravatarzhengtn03 100 0.013 s 0.36 MiB C++
Gravatar刷刷题 100 0.013 s 21.90 MiB Pascal
Gravatar刷刷题 100 0.015 s 0.39 MiB Pascal
Gravatarzqzas 100 0.016 s 0.26 MiB C++
Gravatar粘粘自喜 100 0.019 s 0.28 MiB C++
本题关联比赛
EYOI与SBOI开学欢乐赛5th
关于 卫星覆盖 的近10条评论(全部评论)
回复 @Cir :
VIP Orz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Gravatar沉迷学习的假的Keller
2016-03-14 21:18 3楼
VIP
可以利用离散思想,立方体最多是100个,所以每个坐标轴上的离散点不会超过200个,并且一个立体空间是由若干个平面层叠加而成。所以可以把第三维作为虚拟的。这时候200*200就够了;关于时间上的优化。。。。。。一个立方体他可能处于若干个平面,在每个平面中它能覆盖的面积是一定的。

感谢一楼代码能供我参考
Gravatar粘粘自喜
2016-03-14 20:56 2楼
Gravatarmikumikumi
2015-06-27 11:43 1楼

258. [NOI 1997]卫星覆盖

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

【题目描述】

$SERCOI(Space-Earth$ $Resource$ $Cover-Observe$ $lnstitute)$是一个致力于利用卫星技术对空间和地球资源进行覆盖观测的组织。现在他们研制成功一种新型资源观测卫星 $SERCOI-308$。这种卫星可以覆盖空间直角坐标系中一定大小的立方体空间,卫星处于该立方体的中心。


其中 $(x,y,z)$ 为立方体的中心点坐标,$r$ 为此中心点到立方体各个面的距离(即$ r$ 为立方体高的一半),立方体的各条边均平行于相应的坐标轴。我们可以用一个四元组 $(x,y,z,r)$ 描述一颗卫星的状态及其所能覆盖的空间体积。由于一颗卫星所能覆盖的空间体积是有限的,因此空间中可能有若干颗卫星协同工作。它们所覆盖的空间区域可能有重叠的地方,如下图所示(阴影部分表示重叠的区域)。

Image:Satellitecover.png

请你写一个程序,根据给定的卫星分布情况,计算它们所覆盖的总体积。

【输入格式】

输入文件的第一行是一个正整数 $N$,表示空间中的卫星总数。

接下来的 $N$ 行每行用空格隔开的四个正整数 $x,y,z,r$ 给出了一颗卫星的状态,依次表示了该卫星所能覆盖的立方体空间的中心点坐标和半高。

【输出格式】

输出文件只有一行,包括一个正整数,表示所有这些卫星所覆盖的空间总体积。

【样例输入1】

3
0 0 0 3
1 -1 0 1
19 3 5 6

【样例输出1】

1944

【输入/输出样例2】

输入输出样例2

【数据规模与约定】

$5$%的数据,$N=1;$

另$20$%的数据,$2 \leq N \leq 3;$

另$30$%的数据,$3 \leq N \leq 10;$

$100$%的数据,$1 \leq N \leq 100 ,-1000 \leq x,y,z \leq 1000, 1 \leq r \leq 200$。

【来源】

$NOI$ $1997$