內角均爲120度六邊形面積求解(xdoj 1118)

上題:西電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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章