• HihoCoder 1245:王胖浩与三角形 三角形边长与面积


    #1245 : 王胖浩与三角形

    时间限制:1000ms
    单点时限:1000ms
    内存限制:256MB

    描述

    王胖浩有一个三角形,三边长为a,b,c。他有特殊的能力,能增加三条边的边长,增加的总长度不能超过l。

    他想通过合理地使用他的特殊能力,使得三角形的面积最大。

    输入

    第一行一个整数T,表示测试数据个数。

    以下T行,每行一个四个整数a,b,c,l。

    数据范围:

    1<=T<=104, 1<=a,b,c<=106, 0<=l<=106

    输出

    输出T行,每行一个实数,表示三角形的面积。要求相对误差不能超过10-9

    样例输入
    1
    2 3 3 3
    样例输出
    5.8216152143
    已知三角形的三个边长a,b,c,其面积是sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a))/4。

    考虑面积公式sqrt((a+b+c)(a+b-c)(b+c-a)(a+c-b))/4,如果固定了a和b+c,那么b和c越接近越好。

    所以将三条边排序,首先增加第一条边到和第二条边一样长,然后一起增加前两条边到和第三条边一样长,然后三条边一起增加。

    代码:

    #include <iostream>
    #include <algorithm>
    #include <cmath>
    #include <vector>
    #include <string>
    #include <cstring>
    #pragma warning(disable:4996)
    using namespace std;
    
    double a[5], res, ll;
    
    int main()
    {
    	//freopen("i.txt","r",stdin);
    	//freopen("o.txt","w",stdout);
    
    	int test;
    	scanf("%d", &test);
    
    	while (test--)
    	{
    		cin >> a[0] >> a[1] >> a[2] >> ll;
    		
    		sort(a, a + 3);
    
    		if (ll <= a[1] - a[0])
    		{
    			a[0] = a[0] + ll;
    		}
    		else
    		{
    			ll = ll - (a[1] - a[0]);
    			a[0] = a[1];
    			if (ll/2 <= a[2] - a[1])
    			{
    				a[1] = a[1] + ll / 2;
    				a[0] = a[0] + ll / 2;
    			}
    			else
    			{
    				ll = ll - 2 * (a[2] - a[1]);
    				a[1] = a[2];
    				a[0] = a[2];
    
    				a[0] = a[0] + ll / 3;
    				a[1] = a[1] + ll / 3;
    				a[2] = a[2] + ll / 3;
    			}
    		}
    		res = sqrt((a[0] + a[1] + a[2])*(a[0] + a[1] - a[2])*(a[1] + a[2] - a[0])*(a[0] + a[2] - a[1])) / 4;
    		printf("%.10lf
    ", res);
    	}
    	//system("pause");
    	return 0;
    }
    




  • 相关阅读:
    Ajax请求过程中显示“进度”的简单实现
    Asp.net 图片文件防盗链介绍
    ASP.NET MVC验证
    MVC文件上传
    MVC文件上传-使用jQuery.FileUpload和Backload组件实现文件上传
    使用jQuery.FileUpload插件和服Backload组件自定义上传文件夹
    使用jQuery.FileUpload和Backload自定义控制器上传多个文件
    使用jQuery.FileUpload插件和Backload组件裁剪上传图片
    CSS3 多列
    CSS3 2D转换 动画
  • 原文地址:https://www.cnblogs.com/lightspeedsmallson/p/5173977.html
Copyright © 2020-2023  润新知