題目大意:
思路:首先我們需要求出整個凸多面體的重心
可以通過把多面體剖分為四面體 求出每個四面體的重心
四面體的重心為四個點的座標和/4
對每個四面體的重心 加上它們體積的權 加權平均數即為整個的重心
(求每個四面體的體積可以用三個向量的混合積
因為給出了求凸面三角形的公式
因此乙個凸面上凸n邊形的公式為它的內角和-(n-2)*pi
這樣這個面的答案為面積/整個圓的表面積即4pi
(求二面角可以用叉積 求出兩個法向量然後運用課內知識求出二面角
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10view code#define inf 2139062143
11#define ll long long
12#define maxn 200
13using
namespace
std;
14 inline int
read()
1518
while(isdigit(ch))
19return x*f;20}
21const
double pi=acos(-1
);22
intn,m,alpha[maxn][maxn],num[maxn];
23struct vectorp[maxn];
24 vector operator + (const vector &a,const vector &b) ;}
25 vector operator - (const vector &a,const vector &b) ;}
26 vector operator * (const vector &a,const
double &b) ;}
27 vector operator / (const vector &a,const
double &b) ;}
28 vector operator ^ (const vector &a,const vector &b) ;}
29double
operator & (const vector &a,const vector &b)
30 inline double len(vector a)
31 inline double getv(vector a,vector b,vector c)
32 inline double
geta(vector a,vector b,vector c)
3336
intmain()
3746
for(int i=1;i<=m;i++)
47for(int j=2;j)
4853 ctr=ctr/(vs*4
);54
for(int i=1;i<=n;i++) p[i]=p[i]-ctr;
55for(int i=1;i<=m;i++)
5661 }
JZOJ4603 顏料大亂鬥
這裡就不罵辣雞出題人了 這題查詢和修改區間 l r 竟然 l 可以大於 r!而且白色是顏料1!注意上面那些細節,開30顆線段樹就可以ac了。include include include include define fo i,j,k for int i j i k i define fd i,j,...
JZOJ 4603 顏料大亂鬥
畫師傅又要開始畫畫了,這次他花了三天三夜將一堵牆塗成了白色。但是畫師傅有個頑劣的 小花,小花討厭畫師傅對ta始亂終棄,所以趁 畫師傅不在用不同的顏料將牆塗來塗去。然而畫師傅為了保護他的大作,設定了乙個監控機制a。a每隔一段時間會 查珣某一段牆上的顏料的種類數,並將其記錄下來。現在畫師傅回來了,看到五...
BZOJ1052 BZOJ3760 覆蓋問題
原題位址 先說自己的逗比方法 二分答案,把所有點用乙個最小的矩形 框 起來,易證矩形的其中乙個端點是最優解中正方形的乙個端點,然後列舉四個端點後遞迴處理,差不多了 然後 olz黃學長的o n 做法 ac code include include include using namespace std...