hdu 1700 (圆的内接三角形 要周长最大)
生活随笔
收集整理的這篇文章主要介紹了
hdu 1700 (圆的内接三角形 要周长最大)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以原點為圓心,給出圓上的一點,要求圓上的另外兩點,使得這三個點的距離和最大,很容易想到這是一個等邊三角形
然后有這兩個公式 點a為已知點
a*b=|a|*|b|*cos(120);
x*x+y*y=r*r;
Sample Input
2
1.500 2.000
563.585 1.251
Sample Output
0.982 -2.299 -2.482 0.299
-280.709 -488.704 -282.876 487.453
?
1 # include <iostream> 2 # include <cstdio> 3 # include <cstring> 4 # include <algorithm> 5 # include <cmath> 6 # include <queue> 7 # define LL long long 8 using namespace std ; 9 10 11 int main () 12 { 13 //freopen("in.txt","r",stdin) ; 14 int T ; 15 scanf("%d" , &T) ; 16 while(T--) 17 { 18 double x , y , x1 , y1 , x2 , y2 , a ,b ,c , r; 19 scanf("%lf %lf" , &x , &y) ; 20 r = sqrt(x*x + y*y) ; 21 a = r * r ; 22 b = r * r * y ; 23 c = (r*r*r*r-4*x*x*r*r)/4.0 ; 24 y1 = (-1.0*b - sqrt(b*b - 4*a*c))/(2*a) ; 25 y2 = (-1.0*b + sqrt(b*b - 4*a*c))/(2*a) ; 26 if (fabs(x-0) < 1e-7) 27 { 28 x1 = -sqrt(r*r - y1*y1) ; 29 x2 = sqrt(r*r - y2*y2) ; 30 } 31 else 32 { 33 x1 = (-r*r/2-y*y1)/x ; 34 x2 = (-r*r/2-y*y2)/x ; 35 } 36 printf("%.3lf %.3lf %.3lf %.3lf\n" , x1 , y1 , x2 , y2) ; 37 38 } 39 40 return 0 ; 41 } View Code?
轉載于:https://www.cnblogs.com/mengchunchen/p/4823435.html
總結
以上是生活随笔為你收集整理的hdu 1700 (圆的内接三角形 要周长最大)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 条款1:指针与引用
- 下一篇: 监控Tomcat解决方案(监控应用服务器