本文主要是介绍HDU 3903 Trigonometric Function (三角恒等式余弦定理),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
http://acm.hdu.edu.cn/showproblem.php?pid=3903
如何判断的有理性?
由这三个式子:
问题可化归为判断A,B,C的正弦和余弦是否为有理数,又由余弦定理
以及
cos(arccos x)=x
若x=p/q,则sqrt(1-x^2)=sqrt(q^2-p^2)/q
故只需判断q^2-p^2是否为完全平方数即可。
完整代码:
/*281ms,356KB*/#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;int main()
{int icase;scanf("%d", &icase);__int64 a, b, c, n, m, k;while (icase--){cin >> a >> b >> c >> n >> m >> k;__int64 d = 4 * b * b * c * c - (b * b + c * c - a * a) * (b * b + c * c - a * a);__int64 e = 4 * b * b * a * a - (a * a + b * b - c * c) * (a * a + b * b - c * c);__int64 f = 4 * a * a * c * c - (a * a + c * c - b * b) * (a * a + c * c - b * b);__int64 x, y, z;x = sqrt(d);y = sqrt(e);z = sqrt(f);if (x * x == d && y * y == e && z * z == f) puts("YES");else puts("NO");}
}
这篇关于HDU 3903 Trigonometric Function (三角恒等式余弦定理)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!