#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\n", res);}//system("pause");return 0;
}

HihoCoder 1245:王胖浩与三角形 三角形边长与面积相关推荐

  1. HIHO#1245 : 王胖浩与三角形

    <span style="color: inherit; line-height: 1.1; font-family: 'Helvetica Neue', Helvetica, Ari ...

  2. hihocoder 1246 王胖浩与环

    题意: 给出一个环,环上有n(<=2000)个数字(<=5e7),然后将这个环分成1~n个连续序列,各个序列和之间的最大公因数. 题解: 我一开始想到的是二分,然后对于二分就会想怎么che ...

  3. hihoCoder #1246 王胖浩与环

    题目大意 $n$($1\le n\le 2000$)个正整数 $a_1, a_2, \dots, a_n$($a_i\le 5\times 10^7$)分布在一个圆环上. 定义 $b_k$ 为:将环上 ...

  4. hihoCoder #1246 : 王胖浩与环 (数学)

    题意: 有一个环形序列,可以将其切成连续的k段子序列,那么gcd( 每段子序列的和 )就是优美程度.输出n个整数,表示当k=[1, n] 时的最大优美程度. 思路: 观察一下,当切成1段的时候,gcd ...

  5. hihocoder王胖浩与三角形【海伦公式+分类讨论】

    时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 王胖浩有一个三角形,三边长为a,b,c.他有特殊的能力,能增加三条边的边长,增加的总长度不能超过l. 他想通过合理地使用他的 ...

  6. hihoCoder挑战赛16 王胖浩与三角形

    题目1 : 王胖浩与三角形 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 王胖浩有一个三角形,三边长为a,b,c.他有特殊的能力,能增加三条边的边长,增加的总长度不能超过 ...

  7. hihocoder1245 王胖浩与三角形

    #1245 : 王胖浩与三角形 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 王胖浩有一个三角形,三边长为a,b,c.他有特殊的能力,能增加三条边的边长,增加的总长度不能 ...

  8. HihoCoder 1246:王胖浩与环

    #1246 : 王胖浩与环 时间限制:6000ms 单点时限:1000ms 内存限制:256MB 描述 王胖浩有一个环,环上有n个正整数.他有特殊的能力,能将环切成k段,每段包含一个或者多个数字. 对 ...

  9. Python编程输出三角形的边长及面积

    题目: 1.设计一个小程序,运用操作运算符实现输入三角形的边长.输出三角形的边长及面积. 输入三角形的三条边长 如果三条边长构成三角形则输出周长及面积,否则输出"三条边的长度不能构成三角形& ...

最新文章

  1. android sliding tab,android – 刷新SlidingTabLayout
  2. 实战并发编程 - 08基于Guarded Suspension模式优化轮询while(true)
  3. Linux的Page Cache
  4. groovy使用范型的坑
  5. mysql libs 5.1.71_用python创建数据库监控平台(1)安装MySQL5.7
  6. 分布式系统开发注意点_分布式系统注意事项
  7. 前台一键备份数据库+PHP实现方式
  8. Matlab--三种工具绘制errorbar图
  9. D1. All are Same
  10. session过期返回登录页面跳出frame
  11. 【bzoj3676】
  12. raptor的基本符号有_Raptor 基本符号有( )
  13. 计算机在思政专业的应用与探索,课程思政在计算机类课程中的探索与实践
  14. SVGA动画在直播源代码的运用——直播礼物的实现
  15. 怎么把做好的ps保存成图片_ps存成jpg格式的快捷键,ps如何另存为图片格式
  16. Java private方法访问
  17. Python基于修正余弦相似度的电影推荐引擎
  18. 新算力 “芯”动能--国鑫发布 AMD Genoa 平台服务器
  19. 全球及中国可编程图形计算器行业研究及十四五规划分析报告
  20. 基于matlab的ofdm系统仿真及性能分析,基于MATLAB的OFDM系统性能仿真

热门文章

  1. Exchange报错:452 4.3.1 Insufficient system resources
  2. 用Mediawiki做百科网站资源大参考
  3. Burpsuite+夜神模拟器对app抓包(安卓7及其以上)
  4. rk3288 linux 编译,注意了!VS-RK3288Ubuntu编译环境错误小结
  5. PC:各大主板开机启动项快捷键
  6. 1660s功耗多少w_gtx660满载功耗是多少
  7. Python中汉字繁简体互转
  8. Linux Ubuntu 命令行文件系统的创建,挂载,卸载
  9. Zhong__Python math
  10. Linux中如何优雅的批量合并、拆分、加密pdf文件