CF 1C

アイデア(トピックの特別な条件に応じて切り込みます):

1.エッジの数<= 100->を列挙できることを確認します

2.正多角形を見る->正多角形の頂点間の角度を調べる(X、明白な法則なし)正多角形は円上にある(√)-> 3点は円上にある

したがって、最小の円は、円の中心を見つけ、夾角を計算し、辺の数を列挙し、それが最小角度の倍数であるかどうかを確認することによって見つけることができます。

 

注意:

1.特別判定スロープ

2.形而上学、エラー範囲は大きすぎてはいけません

 

#include <bits / stdc ++。h>
using namespace std;
#define ll long long
ll n、m、a、ans、ans2;
ダブルiptf1x、iptf2x、iptf3x、iptf1y、iptf2y、iptf3y;
int i、j、k;

bool equ(double a、double b)
{ // printf( "%。3f%.3f%.3f \ n"、a、b、fabs(ab));     if(fabs(ab)<0.0001)trueを返します。     falseを返します。} int main(){     scanf( "%lf%lf%lf%lf%lf%lf"、&iptf1x、&iptf1y、&iptf2x、&iptf2y、&iptf3x、&iptf3y); double mid12x =(iptf1x + iptf2x)/ 2、mid12y =(iptf1y + iptf2y)/ 2; ダブルK12; if(equ(iptf1y-iptf2y、0))K12 = 999999999; それ以外の場合K12 =-(iptf1x-iptf2x)/(iptf1y-iptf2y);







    



ダブルB12 = mid12y-K12 * mid12x;
//特判水平竖直 
doublemid23x =(iptf2x + iptf3x)/ 2、mid23y =(iptf2y + iptf3y)/ 2;
ダブルK23;
if(equ(iptf2y-iptf3y、0))K23 = 999999999;
else K23 =-(iptf2x-iptf3x)/(iptf2y-iptf3y);

ダブルB23 = mid23y-K23 * mid23x;
ダブルX =(B23-B12)/(K12-K23);
ダブルY = X * K12 + B12;
//换系 
iptf1x = iptf1x-X;
iptf1y = iptf1y-Y;
iptf2x = iptf2x-X;
iptf2y = iptf2y-Y;
iptf3x = iptf3x-X;
iptf3y = iptf3y-Y;

double r2 = fabs(iptf1x * iptf1x + iptf1y * iptf1y);
double cos12 =(iptf1x * iptf2x + iptf1y * iptf2y)/ r2;
double ang12 = acos(cos12);
double cos23 =(iptf2x * iptf3x + iptf2y * iptf3y)/ r2;
double ang23 = acos(cos23);
double cos13 =(iptf1x * iptf3x + iptf1y * iptf3y)/ r2;
double ang13 = acos(cos13);
// printf( "%。3lf%.3lf%.3lf%.3lf%.3lf \ n"、X、Y、ang12 / 3.1415926 * 180、ang23 / 3.1415926 * 180、ang13 / 3.1415926 * 180);    

//辺の数を列挙します
for(i = 3; i <= 100; i ++)
{ ////
角度サイズを決定し
ますdoublebz = 3.1415926535793 * 2 / i; // printf( "%d%.9lf \ n "、i、ang12-(bz *(double)((int)(ang12 / bz))));

if(equ(ang12-(bz *(double)((int)(ang12 / bz + 0.00001)))、0))
if(equ(ang23-(bz *(double)((int)(ang23 / bz + 0.00001)))、0))
if(equ(ang13-(bz *(double)((int)(ang13 / bz + 0.00001)))、0))    
{     printf( "%。6lf"、(double)i * fabs(sin(bz)* r2)/ 2);     0を返します。}


}
}
 

おすすめ

転載: blog.csdn.net/haobang866/article/details/114583345