時間限制:c/c++ 1秒,其他語言2秒
空間限制:c/c++ 32768k,其他語言65536k
special judge, 64bit io format: %lld
題目描述
某天lililalala正在玩一種奇妙的吃雞遊戲–因為在這個遊戲裡會同時有兩個圓形安全區(他們可能相交)。
lililalala覺得求圓的面積並太簡單了,所以想把這個問題公升級一下。
現在在三維空間裡有 2 個球形安全區,分別用四元組
,y1,
z1,r
1>
,y1,
z1,r
1>
和,y2,
z2,r
2>
,y2,
z2,r
2>
表示,其中 r1、
r2r1、r2
r1、r
2表示球半徑, (x1
,y1,
z1)(x1,y1,z1)
(x1,y1
,z1)
和 ( x2
,y2,
z2)(x2,y2,z2)
(x2,y2
,z2)
表示球心
lililalala想知道安全區的總體積是多少?即求這兩個球的體積並。
輸入描述:
輸入有兩行。
第一行四個實數 x1,
y1,z
1,r1
x1,y1,z1,r1
x1,y1,
z1,r
1–第乙個球的球心座標和半徑。
第二行四個實數 x2,
y2,z
2,r2
x2,y2,z2,r2
x2,y2,
z2,r
2–第二個球的球心座標和半徑。
保證所有輸入的座標和半徑的範圍都在 [
−100
,100
][−100,100]
[−100,
100]
內。輸出描述:
輸出一行乙個實數–表示兩個球的體積並,你的答案被認為正確,當且僅當絕對誤差不超過10−6。
示例1
輸入0 0 0 1
2 0 0 1
輸出8.3775804
示例2
輸入0 0 0 1
0 0 0 0.5
輸出4.1887902
兩個球不相交或者小球在大球內部的情況非常簡單,結果就是球的體積
兩球相交的時候,即 fab
s(r1
−r2)
2fabs(r_1-r_2)fa
bs(r
1−r
2)<
d+r2
的情況
結果是兩個球的體積減去它們球缺的體積就好了
球缺即v=
πh2(
r−h3
)\large v =\pi h^2(r-\frac)
v=πh2(
r−3h
)如圖所示,上邊被切下來的部分就是球缺…我們需要知道它的體積
牛客練習賽41E 球的體積並
題解 先判斷一下兩個球不相交以及包含的關係,比較好考慮,然後就是兩個球有交集的時候,主要就是求兩個弧面對應的高,可以設夾角,然後利用cos角的關係就是餘玄定理表示對應的高,最後就是求相交的體積,得出結果。include include include include include using na...
牛客練習賽41 E 球的體積並 球的體積並模板
題意 求兩個球的體積並做法 用球缺公式 計算幾何模板即可解決。球缺公式為 v h2 3 r h 3v frac v 3 h2 3r h 其中r rr是球的半徑,h hh是球缺的高。include include include include using namespace std const in...
球體相交體積模板 牛客練習賽41 B 球的體積並
某天lililalala正在玩一種奇妙的吃雞遊戲 因為在這個遊戲裡會同時有兩個圓形安全區 他們可能相交 lililalala覺得求圓的面積並太簡單了,所以想把這個問題公升級一下。現在在三維空間裡有 2 個球形安全區,分別用四元組 和 表示,其中 r1 r2 r1 r2表示球半徑,x1,y1,z1 x...