上題:西電oj 1118 : http://acm.xidian.edu.cn/problem.php?id=1118
內角均爲120度的六邊形不一定是正六邊形!!
內角均爲120度的六邊形不一定是正六邊形!!
內角均爲120度的六邊形不一定是正六邊形!!
重要的事情說三遍~!
內角均爲120度的六邊形的特點:對邊的差相等
面積求法:
延長三邊交於三點,得到正三角形
六邊形面積=大正三角形面積-3個小正三角形面積
然後枚舉6邊找符合要求的六邊形最大面積就好啦~
代碼:
#include <bits/stdc++.h>
using namespace std;
int mm[6];
int main()
{
while (scanf("%d %d %d %d %d %d",&mm[0],&mm[1],&mm[2],&mm[3],&mm[4],&mm[5])!=EOF)
{
double sum=-1.0,ma=-1.0;
sort(mm, mm+6);
do
{
int t1 = mm[5]+mm[1]+mm[0];
int t2 = mm[3]+mm[1]+mm[2];
int t3 = mm[5]+mm[4]+mm[3];
if (t1==t2 && t2==t3)
{
sum=sqrt(3)*(t1*t1-mm[1]*mm[1]-mm[3]*mm[3]-mm[5]*mm[5])/4.0;
ma=max(ma,sum);
}
}while (next_permutation(mm,mm+6));
if (ma!=-1.0)
printf("%.2lf\n",ma);
else printf("0\n");
memset(mm, 0, sizeof(mm));
}
return 0;
}