HDU 5135 Little Zu Chongzhi's Triangles

题目:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5089

代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>

using namespace std;

int main()
{
    int t;
    while(~scanf("%d",&t),t)
    {
        int a[100];
        memset(a,0,sizeof(a));
        for(int i=0;i<t;i++)
        {
            scanf("%d",&a[i]);
        }
        sort(a,a+t);
        double sum=0;
        for(int i=t-1;i>=2;)
        {
            if(a[i-2]+a[i-1]>a[i])
            {
                double p=(a[i]+a[i-1]+a[i-2])*0.5;
                sum=sum+sqrt(p*(p-a[i])*(p-a[i-1])*(p-a[i-2]));
                 //printf("%.2f\n",sum);
                 i=i-3;
            }
            else
            {
                i--;
            }
        }
       printf("%.2lf\n",sum);
    }
}

分析:

好像还可以DP,再看看。

你可能感兴趣的:(HDU 5135 Little Zu Chongzhi's Triangles)