zoukankan      html  css  js  c++  java
  • 【数学三角恒等变幻】【HDU2552】三足鼎立

    Problem Description

    MCA山中人才辈出,洞悉外界战火纷纷,山中各路豪杰决定出山拯救百姓于水火,曾以题数扫全场的威士忌,曾经高数九十九的天外来客,曾以一剑铸十年的亦纷菲,歃血为盟,盘踞全国各个要塞(简称全国赛)遇敌杀敌,遇佛杀佛,终于击退辽军,暂时平定外患,三人位置也处于稳态。

    可惜辽誓不甘心,辽国征南大将军<耶律javac++>欲找出三人所在逐个击破,现在他发现威士忌的位置s,天外来客的位置u,不过很难探查到亦纷菲v所在何处,只能知道三人满足关系:

    arctan(1/s) = arctan(1/u)+arctan(1/v)

    注:(其中0 <= x <= 1)
    定义 f(s, u, v) = v*u-s*u-s*v 的值 为<三足鼎立>

    <耶律javac++>想计算<三足鼎立>的值

     

     

    Input

    首先输入一个t,表示有t组数据,跟着t行:
    输入s, u (s <= 12^3, u <= 2^20 且 s, u, v > 0)
    且s,u,v均为实数

     

     

    Output

    输出 v*u-s*u-s*v 的值,为了简单起见,如果是小数,直接取整

    比如:答案是1.7 则输出 1

     

     

    Sample Input

    1

    1 2

     

     

    Sample Output

    1

     

     

    Author

    英雄哪里出来

     

     

    直接计算精度丢失太多

    由三角函数知等式恒等于1

    *1.tan(a+b) = ( tan(a) + tan(b)) / (1 – tan(a) * tan(b) )
    2.tan( atan(x) ) = x
    arctan(1/s) =arctan(1/u)+arctan(1/v)
    所以得1/s = tan( arctan(1/u)+arctan(1/v)) = (tan(arctan(1/u)) + tan(arctan(1/v)))/(1-tan(arctan(1/u))*tan(arctan(1/v)))= (1/u + 1/v) / (1 - 1/(uv))
    所以解得 uv = 1 + us + vs
    所以v*u-s*u-s*v恒等于1*/
    #include<iostream>
    using namespace std;
    int main()
    {
            intt;
            doubles,u,v;
            cin>>t;
            while(t--)
            {
                   cin>>s>>u;
                   cout<<1<<endl;
            }
            return0;
    }


     

  • 相关阅读:
    linux shell 总结
    python小结
    python与execl的读写
    利用burpsuits暴力破解登陆界面
    python之函数的使用
    Sublime text怎么识别input函数
    ping的禁止
    Hbase的配置与使用
    JAVA 利用反射自定义数据层框架
    JAVA实现网页上传头像
  • 原文地址:https://www.cnblogs.com/zy691357966/p/5480454.html
Copyright © 2011-2022 走看看