HihoCoder 1245:王胖浩与三角形 三角形边长与面积
来源:互联网 发布:计算器软件下载 编辑:程序博客网 时间:2024/04/28 18:25
#1245 : 王胖浩与三角形
时间限制:1000ms
单点时限:1000ms
内存限制:256MB
- 样例输入
12 3 3 3
- 样例输出
5.8216152143
描述
王胖浩有一个三角形,三边长为a,b,c。他有特殊的能力,能增加三条边的边长,增加的总长度不能超过l。
他想通过合理地使用他的特殊能力,使得三角形的面积最大。
输入
第一行一个整数T,表示测试数据个数。
以下T行,每行一个四个整数a,b,c,l。
数据范围:
1<=T<=104, 1<=a,b,c<=106, 0<=l<=106
输出
输出T行,每行一个实数,表示三角形的面积。要求相对误差不能超过10-9。
考虑面积公式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;}
0 0
- HihoCoder 1245:王胖浩与三角形 三角形边长与面积
- 三角形边长求面积
- 三角形周长与面积
- hihoCoder挑战赛16 王胖浩与三角形
- 输入三角形边长,并计算面积
- 计算边长为abc三角形的面积
- 三角形三边与面积关系
- Java - 三角形与圆形面积
- 已知三角形三条边长 求三角形的面积
- 输入三角形的3边长,求三角形面积
- hihocoder王胖浩与三角形【海伦公式+分类讨论】
- hihoCoder挑战赛16 A—— 王胖浩与三角形
- 用类求三角形的周长与面积
- c++:计算三角形的惆怅与面积
- HIHO#1245 : 王胖浩与三角形
- (海伦公式)已知三角形三条边长,求面积
- (海伦公式)已知三角形三条边长,求面积
- 计算边长分别为:4.27,6.43,5.21的三角形面积
- HDU5533(水几何~)
- 动态代理
- 字符串和16进制字符串的相互转化
- Python-在Mac下的环境搭建
- android退出应用程序
- HihoCoder 1245:王胖浩与三角形 三角形边长与面积
- Xcode 7 之真机调试 -- @ShinePug
- OpenLayers 3 之 加载天地图
- 操作SharedPreference的工具类设计
- linux中安装nfs
- ULUA/CSTOLUA
- poj 3009(dfs)
- 修改geowebcache缓存路径
- CentOS 搭建svn失败,无法连接host解决方法