問題 E 凸包(幾何 期望)

2021-09-23 08:13:12 字數 932 閱讀 2802

題目描述

給定平面上n個點及其出現的概率,問這n個點**現的那些點組成的凸包面積期望是多少,如果凸包退化為直線則視其面積為0。保證不出現三點共線。

輸入第一行,乙個整數n,表示點的個數。

第2~n+1行,每行三個數。前兩個整數x,y表示點的座標。第三個實數p,表示出現的概率。p最多有4位小數。

輸出一行乙個實數,表示期望面積。

答案保留6位小數。

3

0 0 0.1

1 0 0.1

1 1 0.1

樣例輸出

0.000500
提示

對於三個點都出現的情況才有可能出現凸包。該凸包的面積為0.5。

所以期望面積為0.1×0.1×0.1×0.5=0.000500

對於30%的資料,n≤3

對於100%的資料,n≤100,−1000≤x,y≤1000,0≤p≤101。

暴力想法,列舉每一種情況,然後計算凸包面積,再計算期望,雖然不可行,但是暴力總是提供基本思想打完暴力就有想法了,求完凸包再求面積,我們是怎麼求面積的呢,一般都是用叉積求的吧

考慮乙個有向線段ab如果它被取,則會貢獻

#include#define int long long

using namespace std;

const int maxn = 105;

double x[maxn],y[maxn],p[maxn],ans;

int n;

double cj(double x1,double y1,double x2,double y2)

signed main()

}ans = ans + s;}}

}cout << abs(ans / 2) << endl;

return 0;

}

計算幾何 凸包問題

給定平面上的二維點集,求解其凸包。一 graham掃瞄法 1.在所有點中選取y座標最小的一點h,當作基點。如果存在多個點的y座標都為最小值,則選取x座標最小的一點。座標相同的點應排除。然後按照其它各點p和基點構成的向量與x軸的夾角進行排序,夾角由大至小進行順時針掃瞄,反之則進行逆時針掃瞄。實現中無需...

計算幾何 凸包

有多個手機訊號發射器,求解乙個最小區域,要求所有的發射器都包含在這個最小區域中,並且任意兩台發射器之間的交流包含於在這個區域內。將所有的發射器看做為點,任意兩個點之間的連線都包含於乙個平面s 乙個平面的子集s 是凸的,當且僅當 s中的任意兩個點之間的連線都包含於 s中。點集 p的凸包是所有包含 p的...

幾何 凸包(Graham)

在凸包內部的點肯定不會是最遠點對之一,可以不考慮,只列舉在凸包上的所有點對距離長度,並進行比較即可 建凸包 當加入乙個新的點1,這個點和上兩個點2 3組成的角是銳角,則表示點2凹進去了,不是凸包上的點,把點2刪去 include include include include include inc...