[CF1354C2] Not So Simple Polygon Embedding - 数学,几何

Description

给定一个边长为 \(1\) 的正 \(2n\) 边形,求能容纳它的最小的正方形的边长。

Solution

根据对称性得,在转动 \(\pi / 4n\) 的时候取得极值,容易验证其为最小值。

考虑边长为 \(1\) 时,弦心距为 \(\frac {1} {2 \sin(\pi / 2n)}\),于是正方形边长为 \(2 \frac {cos(\pi / 4n)} {2 \sin(\pi / 2n)}\) = $ \frac {cos(\pi / 4n)} {\sin(\pi / 2n)}$。

#include <bits/stdc++.h>
using namespace std;

#define int long long 
const int N = 1000005;

int n;
const double pi = acos(-1);

void solve()
{
    cin>>n;
    double ans = cos(pi/4/n) / sin(pi/2/n);
    printf("%.10lf\n",ans);
}

signed main()
{
    int t;
    cin>>t;
    while(t--)
    {
        solve();
    }
}
上一篇:养花


下一篇:LeetCode-765 情侣牵手/交换座位