HihoCoder 1245:王胖浩与三角形 三角形边长与面积
#1245 : 王胖浩与三角形
-
描述
王胖浩有一个三角形,三边长为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:王胖浩与三角形 三角形边长与面积相关推荐
- HIHO#1245 : 王胖浩与三角形
<span style="color: inherit; line-height: 1.1; font-family: 'Helvetica Neue', Helvetica, Ari ...
- hihocoder 1246 王胖浩与环
题意: 给出一个环,环上有n(<=2000)个数字(<=5e7),然后将这个环分成1~n个连续序列,各个序列和之间的最大公因数. 题解: 我一开始想到的是二分,然后对于二分就会想怎么che ...
- hihoCoder #1246 王胖浩与环
题目大意 $n$($1\le n\le 2000$)个正整数 $a_1, a_2, \dots, a_n$($a_i\le 5\times 10^7$)分布在一个圆环上. 定义 $b_k$ 为:将环上 ...
- hihoCoder #1246 : 王胖浩与环 (数学)
题意: 有一个环形序列,可以将其切成连续的k段子序列,那么gcd( 每段子序列的和 )就是优美程度.输出n个整数,表示当k=[1, n] 时的最大优美程度. 思路: 观察一下,当切成1段的时候,gcd ...
- hihocoder王胖浩与三角形【海伦公式+分类讨论】
时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 王胖浩有一个三角形,三边长为a,b,c.他有特殊的能力,能增加三条边的边长,增加的总长度不能超过l. 他想通过合理地使用他的 ...
- hihoCoder挑战赛16 王胖浩与三角形
题目1 : 王胖浩与三角形 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 王胖浩有一个三角形,三边长为a,b,c.他有特殊的能力,能增加三条边的边长,增加的总长度不能超过 ...
- hihocoder1245 王胖浩与三角形
#1245 : 王胖浩与三角形 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 王胖浩有一个三角形,三边长为a,b,c.他有特殊的能力,能增加三条边的边长,增加的总长度不能 ...
- HihoCoder 1246:王胖浩与环
#1246 : 王胖浩与环 时间限制:6000ms 单点时限:1000ms 内存限制:256MB 描述 王胖浩有一个环,环上有n个正整数.他有特殊的能力,能将环切成k段,每段包含一个或者多个数字. 对 ...
- Python编程输出三角形的边长及面积
题目: 1.设计一个小程序,运用操作运算符实现输入三角形的边长.输出三角形的边长及面积. 输入三角形的三条边长 如果三条边长构成三角形则输出周长及面积,否则输出"三条边的长度不能构成三角形& ...
最新文章
- android sliding tab,android – 刷新SlidingTabLayout
- 实战并发编程 - 08基于Guarded Suspension模式优化轮询while(true)
- Linux的Page Cache
- groovy使用范型的坑
- mysql libs 5.1.71_用python创建数据库监控平台(1)安装MySQL5.7
- 分布式系统开发注意点_分布式系统注意事项
- 前台一键备份数据库+PHP实现方式
- Matlab--三种工具绘制errorbar图
- D1. All are Same
- session过期返回登录页面跳出frame
- 【bzoj3676】
- raptor的基本符号有_Raptor 基本符号有( )
- 计算机在思政专业的应用与探索,课程思政在计算机类课程中的探索与实践
- SVGA动画在直播源代码的运用——直播礼物的实现
- 怎么把做好的ps保存成图片_ps存成jpg格式的快捷键,ps如何另存为图片格式
- Java private方法访问
- Python基于修正余弦相似度的电影推荐引擎
- 新算力 “芯”动能--国鑫发布 AMD Genoa 平台服务器
- 全球及中国可编程图形计算器行业研究及十四五规划分析报告
- 基于matlab的ofdm系统仿真及性能分析,基于MATLAB的OFDM系统性能仿真
热门文章
- Exchange报错:452 4.3.1 Insufficient system resources
- 用Mediawiki做百科网站资源大参考
- Burpsuite+夜神模拟器对app抓包(安卓7及其以上)
- rk3288 linux 编译,注意了!VS-RK3288Ubuntu编译环境错误小结
- PC:各大主板开机启动项快捷键
- 1660s功耗多少w_gtx660满载功耗是多少
- Python中汉字繁简体互转
- Linux Ubuntu 命令行文件系统的创建,挂载,卸载
- Zhong__Python math
- Linux中如何优雅的批量合并、拆分、加密pdf文件