HDU 4386 Quadrilateral(数学啊)

原创 2015年07月09日 14:01:41

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4386


Problem Description
  One day the little Jack is playing a game with four crabsticks. The game is simple, he want to make all the four crabsticks to be a quadrilateral, which has the biggest area in all the possible ways. But Jack’s math is so bad, he doesn’t know how to do it, can you help him using your excellent programming skills?
 

Input
  The first line contains an integer N (1 <= N <= 10000) which indicates the number of test cases. The next N lines contain 4 integers a, b, c, d, indicating the length of the crabsticks.(1 <= a, b, c, d <= 1000)
 

Output
  For each test case, please output a line “Case X: Y”. X indicating the number of test cases, and Y indicating the area of the quadrilateral Jack want to make. Accurate to 6 digits after the decimal point. If there is no such quadrilateral, print “-1” instead.
 

Sample Input
2 1 1 1 1 1 2 3 4
 

Sample Output
Case 1: 1.000000 Case 2: 4.898979
 

Author
WHU
 

Source

题意:

给出四条边的长度,求能否形成四边形,如果能形成求最大面积!

PS:

四边形最大面积:

L = (A+B+C+D)/2;

AREA = sqrt((L-A) * (L-B)*(L-C)*(L-D));

代码如下:

#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
    int t;
    int cas = 0;
    scanf("%d",&t);
    while(t--)
    {
        int a[4];
        for(int i = 0; i < 4; i++)
        {
            scanf("%d",&a[i]);
        }
        sort(a,a+4);
        int sum = a[0]+a[1]+a[2];
        if(sum <= a[3])
        {
            printf("Case %d: -1\n",++cas);
            continue;
        }
        double p = (a[0]+a[1]+a[2]+a[3])/2.0;
        double area = sqrt((p-a[0])*(p-a[1])*(p-a[2])*(p-a[3]));
        printf("Case %d: %.6lf\n",++cas,area);

    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。vasttian

相关文章推荐

Hdu 4386 Quadrilateral

Quadrilateral Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

BZOJ4386: [POI2015]Wycieczki

题目大意:给定一张n个点m条边的带权有向图,每条边的边权只可能是1,2,3中的一种,输出k段路径,没有输出-1 一眼矩阵乘法嘛,弱智题O((3*N)^3*log(INF)*log(K)) 然后手贱搜了...

【codeforces 340B】Maximal Area Quadrilateral

【题目链接】:http://codeforces.com/problemset/problem/340/B【题意】 给你n个点,让你在这里面找4个点构成一个四边形; 求出最大四边形的面积; ...

HDOJ 4386 —— 简单几何

Quadrilateral Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

简单几何 cf198 B. Maximal Area Quadrilateral

cf198 B. Maximal Area Quadrilateral 300个点,取4个点组成一个四边形,求四边形最大面积? 解法:枚举四边形的对角线,在求所有其它点的叉积,取最大最小值,在绝对值相...

Codeforce Maximal Area Quadrilateral

题意:给出的n个点中选出四个点,使得面积最大,这个四边形凸凹不定; 解法:由于四边形的凸凹不定,无法直接求解,但是可以使用分解法,将四边形的面积转化为两个三角形的面积,问题就得到解决,但是,四个点...

问题三十一:ray tracing中Convex Quadrilateral Inverse Mapping

从这一章节开始,主要是学习《An Introduction to Ray Tracing》 光线和多边形相交问题的求解: 1,光线和多边形所在的平面相交,求出交点; 2,判断交点是否...

Codeforce Maximal Area Quadrilateral

题意:给出的n个点中选出四个点,使得面积最大,这个四边形凸凹不定; 题目链接 解法:由于四边形的凸凹不定,无法直接求解,但是可以使用分解法,将四边形的面积转化为两个三角形的面积,问题就得到解决,...

CodeForces 340B Maximal Area Quadrilateral(凸包+旋转卡壳)

题意:给n (4 ≤ n ≤ 300)个点,求最大四边形面积。 分析:    此题点数太少,n3可过,枚举对角线,求对角线两边最大三角形。    不过还有一个更快的方法   就是凸包+旋...

HDU 4498 Function Curve(数学)

Function Curve Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)