zoukankan      html  css  js  c++  java
  • BNU27932——Triangle——————【数学计算面积】

    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(黄)

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

  • 相关阅读:
    Picture
    wolf and rabbit
    十进制转换为二进制(一直不会算的)
    各种排序
    折线分割平面
    字母数
    1001
    Primes
    大数的减法神秘数
    转: Windows Internet WinINet 学习笔记(2)
  • 原文地址:https://www.cnblogs.com/chengsheng/p/4355211.html
Copyright © 2011-2022 走看看