<span style="color: inherit; line-height: 1.1; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: rgb(245, 245, 245);">#1245 : 王胖浩与三角形</span>
时间限制: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。其面积S可以表示为:d=(a+b+c)/2;s=sqrt(d*(d-a)*(d-b)*(d-c))那么要使得面积最大,根据题目中的意思,我们可以推导出题目中的l段必须全部用(推导过程比较简单,只要比较一下总长度递增时,面积的变化情况即可)。同时,还需要考虑在对各个边进行增长时需要使得其仍是三角形。因此,可以考虑从最短的边进行加长。编写的代码如下:

#include<iostream>
#include<math.h>
using namespace std;
void solve(double a,double b,double c ,double d);
double area_solve(double a,double b,double c);
int main(){double T=1e4;double a,b,c,d;cin>>T;for(double i=1;i<=T;i++){cin>>a>>b>>c>>d;if((a<=b)&&(b<=c))solve(a,b,c,d);else if((a<=c)&&(c<=b))solve(a,c,b,d);else if((b<=a)&&(a<=c))solve(b,a,c,d);else if((b<=c)&&(c<=a))solve(b,c,a,d);else if((c<=a)&&(a<=b))solve(c,a,b,d);elsesolve(c,b,a,d);}return 0;
}
void solve(double a,double b,double c ,double d){double aera2=0.0;int flag=0;double temp=b-a;if(temp<=d){a=a+temp;d=d-temp;}else{a=a+d;aera2=area_solve((double)a,(double)b,(double)c);flag=1;d=0;}if(flag==0){temp=c-b;if(d>2*temp){d=d-2*temp;a=c;b=c;double k=d;double a1=a+k/(3.0);double b1=b+k/(3.0);double c1=c+k/(3.0);aera2=area_solve(a1,b1,c1);flag=1;}else{double k=d;double a1=a+k/(2.0);double b1=b+k/(2.0);double c1=c;aera2=area_solve(a1,b1,c1);flag=1;}}if(flag==1){printf("%.11lf\n",aera2);//cout<<setprecision(10)<<aera2<<endl;}
}
double area_solve(double a,double b,double c){double d=(double)(a+b+c)/(2.0);double area=sqrt(d*(d-a)*(d-b)*(d-c));return area;
}

题目中,需要注意的是:要求相对误差不能超过10-9 因此,暗示我们需要将其转化为double型进行处理。同时输出时,要有小数位进行输出(想吐槽一下hihocoder上对cout输出并不友好,在代码中可以看到我后来将cout那段隐掉了,换用了printf)。

HIHO#1245 : 王胖浩与三角形相关推荐

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

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

  2. hihocoder1245 王胖浩与三角形

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

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

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

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

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

  5. hiho 挑战赛16 A.王胖浩与三角形

    水题 题意: 给你三角形的三条边,再给你一个长度L.你要增加三条边的长度,总的增加量是L,使得变大的三角形面积最大 数据范围: 边长<=10^6,L<=10^6 思路: 显然这种题感觉就是 ...

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

    思路:开始没有思路,想到了用三边乱搞(每条边按照比例增加)然而样例都无法通过.后来想到了海伦公式sqrt((a+b+c)(a+b-c)(b+c-a)(a+c-b))/4,那么这样以来就是让这个三角形趋 ...

  7. HihoCoder 1246:王胖浩与环

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

  8. hiho 挑战赛16 B 王胖浩与环

    因数,前缀和 题意: 给你一个循环数组,你要将它截成k段,然后每段有一个区间和,所有的区间和求gcd,就是优美程度,你要使得优美程度最大.k不是输入的,而是你要输出截1段,2段...n段的最优值 数据 ...

  9. hihocoder 1246 王胖浩与环

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

最新文章

  1. sqlalchemy 查询结果 RowProxy 转 list
  2. IDOC实例, Inbound IDOC
  3. MPEG-LA发布VVC专利池
  4. 【通用技术】2个月精通Python爬虫——3大爬虫框架+6场实战+分布式爬虫,包教包会...
  5. [App Store Connect帮助]八、维护您的 App(4.2)查看评分与评论
  6. django 发送php,django 使用 request 获取浏览器发送的参数
  7. Linux 最常用命令(简单易学,能解决 95% 以上的问题)
  8. html图片没有白边,css插入背景图片底部有白边的解决方法
  9. java面试简历项目经验,java面试题项目中的难点
  10. 关于为什么不能减小rb来消除截止失真
  11. android 恢复出厂设置流程分析,Android恢复出厂设置流程分析
  12. 使用TypeScript重构Axios:让你的项目更加完善
  13. python输出n的32次方_在Python中,如何将2的32次方-1的值存放到g中?
  14. 幼儿园案例经验迁移_幼儿生活经验“迁移”讲述的运用指导
  15. Java XLS 转 XLSX
  16. 最受欢迎的中国 50 技术博客评选结果
  17. 房屋出租系统(第一版)
  18. dota2自建房间服务器,创建房间与房间设置 - DOTA2 - 刀塔官方网站 - 勇士令状全新上线 天陨旦活动模式推出...
  19. Android 13小米首批支持机型曝光 这4款机型在内
  20. L1-039 古风排版 (20分)

热门文章

  1. P1719 最大加权矩形(二维dp)
  2. halcon初识region
  3. matlab等高线不显示,Matlab提示ZData 为非有限时,无法显示等高线图
  4. BADI 构建方法(NEW BADI 实施)
  5. 《基于数字信号处理的相干光通信技术》读书笔记chapter III——单载波相干检测及其关键技术
  6. Silvaco 学习笔记——solar(太阳能电池标准分析)
  7. 第十四章 SQL命令 CREATE TABLE(一)
  8. 【淘宝SEO技巧】淘宝SEO优化|淘宝搜索排名规律|淘宝宝贝标题优化
  9. python繁简体转换【亲测有效】
  10. arcgis之合并碎小图斑到相邻大块图斑