Description
在二维平面上,给定一个左下角位于 ( 0 , 0 ) (0,0) (0,0) 点,右上角位于 ( n , n ) (n,n) (n,n) 点的正方形,请你在该矩形中找到一个面积最小的多边形,并且满足以下条件:
该多边形是简单多边形(没有边自交的多边形,包括凸多边形和凹多边形);
该多边形的每个顶点都是整点;
给定正方形的每条边上都至少有一个多边形的顶点。
请问这个多边形的最小面积?
Input
第一行输入一个正整数 T T T 表示数据组数。
然后输入 T 行,每行 1 个正整数 n,表示给定正方形的边长。
1
≤
T
≤
3
×
1
0
5
1\leq T\leq 3\times 10^5
1≤T≤3×105
1
≤
n
≤
1
0
9
1\leq n\leq 10^9
1≤n≤109
Output
输出 T T T 行,每行一个浮点数表示该多边形的最小面积,请保留一位小数后输出。
Sample Input 1
2
1
2
Sample Output 1
0.5
1.0
Hint
样例一的解释如下图:
Δ A B C \Delta ABC ΔABC 是一个合法的最小多边形,面积为 0.5 。
样例二的解释如下图:
Δ
A
C
\Delta AC
ΔACE是一个合法的最小多边形,面积为1;
同时下图的多边形
E
F
C
G
EFCG
EFCG也是一个合法的构造:
思路
1的时候很明显是0.5,题目已经给出
2的时候明显是1.0 题目也已经给出
n大于2的时候可以构造出下图这样的合法多边形
答案始终为1.0
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
if(n==1) cout<<0.5<<"\n";
else cout<<"1.0"<<"\n";
}
}