冬のアルゴリズムベースキャンプ5 J牛肉一族ショーオフ2020頭の牛

https://ac.nowcoder.com/acm/contest/3006/J

タイトル説明

牡牛座のチーム、トレーニングを持っているだけでなく、追いかけるだけではなく。

もう少し示し誰牛肉と牛は常に彼らは通常、他の人のは、その結果は......よりは、show誰よりも多くのコードに行く、と思ったことができます

今回は、彼らがより多くの誰も他のショーよりも歩き始めました。彼らはの半径に来てR、その後、正規の内側の円を描く、円n個、多角形を。テイク場所を示すために、彼らは自分自身だけが多角形の端に移動させることができます。

それと同時に、彼らは容易に正規選択n個ポリゴンの頂点は、頂点番号1であり、その他の点の時計回りの順序は、頂点2、3と呼ばれる、......二つであった開始頂点、私数及び頂点Jの頂点の数。

牛は行くことができますしながら、今、ポリゴンのエッジに沿って牛肉の側に、場所を取る示しています。彼は最短距離は、次の牛のエネルギーに歩いて行くどのくらいだろうか?

思考

それは規則的であるので、単純な幾何学的計算は、  n個 多角形、内角と総(N-2)\ PI合計、  n個 四隅には、各コーナーである\ FRAC {(N-2)\ PI} {N}直角三角形に接続され、次いで(三行-1)は、その側面の任意の垂直方向の中心を通過し、簡単に知ること一角がある\ Fracの{(N-2)\ PI} {2N}正多角形の斜辺側の長さが円相当の半径を判定することができるとともに、2R \ COS \ FRAC {(N-2)\ PI} {2N}二つの位置のそれぞれの点  私 と  J 、n個 ポリゴン、トータル  n個 エッジは、私 につながる  J 2種の必要とされて移動  \左|  IJ \権| し、  左\ N- |  IJ \権| ストリップ、両側ノート精度を乗算し、最小値を求めています。

/*************************************************************************
    > File Name: J.cpp
    > Author: amoscykl
    > Mail: [email protected]
    > Created Time: 2020年02月13日 星期四 13时57分44秒
 ************************************************************************/
 
#include<bits/stdc++.h>
using namespace std;
const double pi = acos(-1);
int n, r;
int main()
{
    scanf("%d %d", &n, &r);
    double x = 2.0 * r;
    x *= cos(((n - 2 * 1.0) / (n * 2.0) * pi));
    int i, j;
    scanf("%d %d", &i, &j);
    int mn = abs(i - j);
    mn = min(mn, n - mn);
    printf("%.7lf\n", mn * 1.0 * x);
    return 0;
}

 

公開された204元の記事 ウォン称賛13 ビュー10000 +

おすすめ

転載: blog.csdn.net/weixin_43701790/article/details/104308386