gmoj 6835. 2020.10.31【NOIP提高A組】T1 小h 的幾何
阿新 • • 發佈:2020-10-31
題面連結:https://gmoj.net/senior/#main/show/6835
Description
Input
Output
Solution
這道題主要是找結論,找到結論就好做了
對於一個三角形,它的中點三角形的外接圓的圓心就是答案
如上圖的三角形中,顯然\(\triangle ABC \sim\triangle EFD\)
\(\triangle ABC\)的外心O為原點,\(\triangle EFD\)的外心為O'
則\(O'=E+\underset{O'E}{\rightarrow}=\frac{B+C}{2}+\frac{\underset{OA}{\rightarrow}}{2}=\frac{A+B+C}{2}\)
然後對於每個點進行操作
其中對於一個點,它被選中的總方案數是\(\frac{(n-1)(n-2)}{2}\)
而算都不用算,在題面有寫,每個點被選中的概率是\(\frac{6}{n(n-1)(n-2)}\)
化簡一下就是該點的貢獻還要乘上\(\frac{3}{n}\)
時間複雜度\(O(n)\)
#include <cstdio> #include <cmath> #define pi 3.1415926535897932384626433832795 #define open(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout); using namespace std; int n,i,m; long double a,x,y; int main() { open("geometry"); scanf("%d",&n); for (i=1;i<=n;i++) { scanf("%d",&m); a=(m*pi)/(1.0*1e9); x+=cos(a)*3/(1.0*n); y+=sin(a)*3/(1.0*n); } printf("%.15Lf %.15Lf",x/2.0,y/2.0); return 0; }