Triangle

Time Limit: 1000ms
Memory Limit: 65536KB

64-bit integer IO format: %lld      Java class name: Main

Special Judge

如图的三角形,三边边长分别为AB=a,BC=b,CA=c,并且AA’/AB=p1,BB’/BC=p2,CC’/CA=p3;

现在对于给定的a,b,c和p1,p2,p3,请你计算图中红黄绿三部分的面积。

 

Input

第一行为一个T 表示测试数据组数 (T<=1000)

接下来的T行

每行先是3个整数 依次为 a b c  0<a,b,c<=10000  保证构成三角形

然后是3个两位小数 依次为p1 p2 p3  0.00<p1,p2,p3<0.50

 

Output

对于每组数据 输出一行 分别为红色 黄色 绿色部分的面积

中间用空格隔开 行末没有空格

答案误差在0.0001内即可

 

Sample Input

2
4 4 4 0.25 0.25 0.25
10 15 20 0.2 0.3 0.4

Sample Output

2.13175484 0.39970403 4.39674436
14.68004304 7.41819926 50.52019544 官方题解:

H. Triangle

这是一道不太常见的几何题,因为需要添加辅助线才能简化推导过程,当然用正弦定理和余弦定理来回倒角和边也是可以的(此题对精度的要求不高,而且是Special Judge),不过会很麻烦的 = =||

辅助线的构造方法:作B’D∥A’C并设BD=x,x可由△AA’O∽△ADB’以及△BB’D∽△BCA’推出,这样AD的长度也是可求的!下面第一个图中的黄色部分的面积就可利用相似比的平方求出,i.e. 对于△ADB’的面积,它的高与△ABC的高也存在相似比关系,这样就可以推导出△AA’O的面积,原图中其他两块黄色部分的面积可利用类似的方法求出,黄色面积的和即为S(黄)

对于绿色部分的面积,S’(绿)=△ABB’—(两块黄色的面积),这里△ABB’与,△ADB’等高的,只是底不同而已~~~。类似地可以求得三块绿色面积的总和

最后红色部分的面积S(红)=S(总)—S(绿)—S(黄)

总的面积可以用海伦公式求解

最新文章

  1. [Python] python vs cplusplus
  2. WPF,Silverlight与XAML读书笔记第四十六 - 外观效果之三皮肤与主题
  3. jQuery学习之jQuery Ajax用法详解
  4. java多线程系类:基础篇:08之join
  5. int跟byte[]数组互转的方法,整数 + 浮点型
  6. [PaPaPa][需求说明书][V0.1]
  7. &quot;微信全球商业创新大赛-创意中国2015&quot;国际MBA商业挑战赛开启
  8. hiho #1272 买零食 [Offer收割]编程练习赛2
  9. Java运算符优先级(转)
  10. css构造文本
  11. dom select选单
  12. iOS 进阶 第十二天(0413)
  13. 多线程程序设计学习(8)Thread-Per-Message
  14. Oracle—用户管理的完全恢复(一)
  15. mysql创建数据库(指定编码)
  16. Gridview中修改某列的背景色
  17. .net下二进制序列化的格式分析[转]
  18. ProjectEuler 做题记录
  19. UNIX网络编程——TCP 滑动窗口协议
  20. 在Mac上使用远程X11应用

热门文章

  1. vs2015+opencv3.3.1+ c++实现 静态背景下多运动目标提取,检测
  2. JavaScript中的原型模式
  3. dubbo源码分析--dubbo spi解析
  4. 2018数学建模A题优秀论文:高温作业专用服装设计
  5. Ubuntu系统使用apache部署多个django项目(python4.3)
  6. Linux硬件信息采集
  7. 剩下的树 THU 机试
  8. wpa_supplicant
  9. ajax beforeSend中无效果
  10. X7-2计算节点关于网卡的一点变化