題意:
給定一棵由若干個圓台和圓錐組成的樹,求這棵樹在與地面成$\alpha$角的平行光束照射下產生的投影的面積。
題解:顯然投影下去之後每個圓的$r$不變,而高度$h$變成$\frac}$。
圓的面積可以直接算,兩個圓的公切線形成的梯形用三角函式推一下也可以直接算。
那麼直接$simpson$積分算一下就行了。注意區間$l,r$應該對所有圓算一遍$min,max$來取值,因為會出現圓套圓的情況。
複雜度$o(n^\log)$(大概吧)。
套路:**:
#include#define maxn 200005月下檸檬樹#define maxm 500005
#define inf 0x7fffffff
#define eps 1e-6
#define ll long long
#define rint register int
#define debug(x) cerr<
namespace
std;
int n; double
h[maxn],r[maxn],c[maxn];
inline
intread()
inline
double f(double
x) }
return
res;
}inline
double simpson(double l,double r)
inline
double solve(double l,double
r)int
main()
NOI2005 月下檸檬樹
一堆圓台平行光的投影 在草稿紙上畫一下,發現對於乙個圓,它投影完還是乙個半徑不變的圓。定義樹的軸在投影平面上經過的點為原點,定乙個正方向,建立平面直角座標系,能發現,對於乙個半徑為 r 高度為 h 的圓,投影到平面上是圓心座標為 cot alpha h,0 半徑為 r 的圓 想象有乙個水平的平面,豎...
NOI2005 月下檸檬樹 計算幾何 積分
題目描述 李哲非常非常喜歡檸檬樹,特別是在靜靜的夜晚,當天空中有一彎明月溫柔 地照亮地面上的景物時,他必會悠閒地坐在他親手植下的那棵檸檬樹旁,獨自思 索著人生的哲理。李哲是乙個喜愛思考的孩子,當他看到在月光的照射下檸檬樹投在地面上的 影子是如此的清晰,馬上想到了乙個問題 樹影的面積是多大呢?李哲知道...
bzoj 1502 NOI2005 月下檸檬樹
檔案的第1行包含乙個整數n和乙個實數alpha,表示檸檬樹的層數和月亮的光線與地面夾角 單位為弧度 第2行包含n 1個實數h0,h1,h2,hn,表示樹離地的高度和每層的高度。第3行包含n個實數r1,r2,rn,表示檸檬樹每層下底面的圓的半徑。上述輸入檔案中的資料,同一行相鄰的兩個數之間用乙個空格分...