关闭

HDU 4386 Quadrilateral(数学啊)

标签: 数学HDU
614人阅读 评论(0) 收藏 举报
分类:

题目链接: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;
}


1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

hdu4386(求四边形最大面积)

题意:给出一个四边形的边长,求四边形最大面积。不合法输出-1; 解法:比较明显的三分,先枚举四边形的边的连接,然后三分一个对角线长度。但是比较怪异的是eps取1e-8wa了,去1e-7才可以...
  • xiefubao
  • xiefubao
  • 2014-05-15 11:00
  • 620

HDU 4998 Rotate(计算几何 绕点旋转)

HDU 4998 Rotate(计算几何 绕点旋转)
  • u012860063
  • u012860063
  • 2014-09-13 22:27
  • 1881

【BZOJ2823】【AHOI2012】信号塔 最小圆覆盖 计算几何

题解之前: 首先最小圆覆盖虽然有三层 forfor 循环,但是它是期望 O(n)O(n) 的。什么?你问我为啥?那我只能呵呵了,50W的 O(n3)O(n^3) 高速跑过。 后交的是不求凸包直...
  • Vmurder
  • Vmurder
  • 2015-06-23 14:04
  • 1310

HDOJ 4386 —— 简单几何

Quadrilateral Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...
  • zkzxmzk
  • zkzxmzk
  • 2013-10-07 17:52
  • 670

HDU 5651 组合数学

xiaoxin juju needs help Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/...
  • black_miracle
  • black_miracle
  • 2016-04-24 21:41
  • 279

hdu 1027(数学)

点击打开链接 分析: 如果为2 1 4 7 6 3 5,则它的下一个排列肯定为2 1 4 7 6 5 3 但如果为2 1 3 7 6 5 4,则它的下一个排列为2 1 4 3 5 6 7...
  • yyf573462811
  • yyf573462811
  • 2013-05-03 12:47
  • 569

HDU 1098 数学归纳法

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1098 思路:数学归纳法     观察可发现规律:13*5=65,并且  f(x)=5*x^13...
  • adcxz
  • adcxz
  • 2017-01-06 13:24
  • 98

HDU 2086:A!=? (数学推导)

有如下方程:Ai = (Ai-1 + Ai+1)/2 - Ci (i = 1, 2, 3, …. n). 若给出A0, An+1, 和 C1, C2, …..Cn. 请编程计算A1
  • xp731574722
  • xp731574722
  • 2017-07-10 17:04
  • 89

hdu 1593(数学)

转载标记处:http://www.xuebuyuan.com/2131627.html 往相反的方面跑,但是,最理想的初始位置并不是圆点和圆上的某一点,应该还有更理想的初始逃跑状态....
  • hexianhao
  • hexianhao
  • 2016-03-03 19:39
  • 162

hdu 4811 数学 不难

http://acm.hdu.edu.cn/showproblem.php?pid=4811 因为看到ball[0]>=2 && ball[1]>=2 && ball[2]>=2  ans=(sum...
  • u011026968
  • u011026968
  • 2014-09-30 19:37
  • 851
    Motto
    • 你必须非常努力,
    • 才能看起来毫不费力。
    • tianyiming:2013/10/15 18:00
    • wdnlwzd:2014/07/30 21:32
    • vasttian: 2016/12/29 12:00
    Vasttian
    个人资料
    • 访问:1046315次
    • 积分:20714
    • 等级:
    • 排名:第448名
    • 原创:869篇
    • 转载:72篇
    • 译文:0篇
    • 评论:251条