衛星覆蓋
cover
sercoi(space-earthresource cover-observe lnstitute)是乙個致力於利用衛星技術對空間和地球資源進行覆蓋觀測的組織。現在他們研製成功一種新型資源觀測衛星-sercoi-308。這種衛星可以覆蓋空間直角座標系中一定大小的立方體空間,衛星處於該立方體的中心。
其中(x,y,z)為立方體的中心點座標,r為此中心點到立方體各個面的距離(即r為立方體高的一半).立方體的各條邊均平行於相應的座標軸。我們可以用乙個四元組(x,y,z,r)描述一顆衛星的狀態,它所能覆蓋的空間體積。
由於一顆衛星所能覆蓋的空間體積是有限的,因此空間中可能有若干顆衛星協同工作。它們所覆蓋的空間區域可能有重疊的地方,如下圖所示(陰影部分表示重疊的區域)。
寫乙個程式,根據給定的衛星分布情況,計算它們所覆蓋的總體積。
輸入輸出
輸入檔案是inpu.txt。檔案的第一行是乙個正整數n(1<=n<=100):表示空間中的衛星總數。接下來的n行每行給出了一顆衛星的狀態,用空格隔開的四個正整數x,y,z,r依次表示了該衛星所能覆蓋的立方體空間的中心點座標和半高,其中-1000<=x,y,z<=1000,1<=r<=200。
輸出檔案是output.txt。檔案只有一行,包
括乙個正整數,表示所有這些衛星所覆蓋的空間總體積。
樣例
input.txt
0 0 0 3
1 –1 0 1
19 3 5 6
output.txt
求體積並有很多方法,這個矩形切割的方法是最簡單,最容易實現的。。其基本思想就是離散化,把所有點離散化出來、、具體實現沒有多少可以講的,很淺顯。
很多統計問題都可以用矩形切割來實現。另外矩形切割可以很容易推廣到m維,我還沒有實現過。
#include long x1[110];
long x2[110];
long y1[110];
long y2[110];
long z1[110];
long z2[110];
long n;long ans=0;
void cut(long fx1,long fx2,long fy1,long fy2,long fz1,long fz2,long i)
if (fx1x2[i])
if (fy1y2[i])
if (fz1z2[i])
}int main()
printf("%ld",ans);
return 0;
}
線段樹 衛星覆蓋(NOI97) 矩陣切割
sercoi space earth resource cover observe lnstitute 是乙個致力於利用衛星技術對空間和地球資源進行覆蓋觀測的組織。現在他們研製成功一種新型資源觀測衛星 sercoi 308。這種衛星可以覆蓋空間直角座標系中一定大小的立方體空間,衛星處於該立方體的中心...
矩形覆蓋問題
問題描述 用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。現在問用8個2 1的小矩形無重疊地覆蓋乙個2 8的大矩形,總共有多少種方法?矩形如下 分析 我們可以把2 8的覆蓋方法記為f 8 用第乙個1 2的矩形去覆蓋大矩形的最左邊時有兩個選擇,豎著放或橫著放。如果豎著放,那麼右邊還剩2 7的矩形區域,這...
58 矩形覆蓋
矩形覆蓋 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?斐波那契數列 2 n的大矩形,和n個2 1的小矩形 其中target 2為大矩陣的大小 有以下幾種情形 1 target 0 大矩形為 2 0,直接return ...