传送门
题意: 找到能放下正n(n为奇数)边形的最小正方形的边长。 思路:
啊啊啊!其实我也不会,看了两位大佬的博客也是似懂非懂的,感觉可比C1难多了大佬博客1 , 大佬博客2代码实现:
#include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <ctime> #include <cctype> #include <cstring> #include <iostream> #include <sstream> #include <string> #include <list> #include <vector> #include <set> #include <map> #include <queue> #include <stack> #include <algorithm> #include <functional> #define endl '\n' #define null NULL #define ll long long #define int long long #define pii pair<int, int> #define lowbit(x) (x &(-x)) #define ls(x) x<<1 #define rs(x) (x<<1+1) #define me(ar) memset(ar, 0, sizeof ar) #define mem(ar,num) memset(ar, num, sizeof ar) #define rp(i, n) for(int i = 0, i < n; i ++) #define rep(i, a, n) for(int i = a; i <= n; i ++) #define pre(i, n, a) for(int i = n; i >= a; i --) #define IOS ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); const int way[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; using namespace std; const int inf = 0x7fffffff; const double Pi = acos(-1.0); const double eps = 1e-6; const ll mod = 1e9 + 7; const int N = 2e5 + 5; int t, n; signed main() { cin >> t; while(t --){ cin >> n; double ans = cos(Pi / (4 * n)) / sin(Pi / (2 * n)); printf("%.9f\n", ans); } return 0; }