用来作弊的药水


       题目链接: https://www.nowcoder.com/acm/contest/90/L

      这道题就是判断x^a是否等于y^b,但是数据范围太大了,所以需要化简一下,x^a和y^b同时取对数,然后就变成了比较log(x^a)和log(y^b)了,然后又根据对数函数的性质,就变成比较a*log(x)和b*log(y)了。


AC代码:

#include 
#define ans 1e-5
using namespace std;
int n;
int x,y,a,b;

int main()
{
  scanf("%d",&n);
  while(n--){
    scanf("%d%d%d%d",&x,&a,&y,&b);
    if(abs(a*log(x) - b*log(y)) < ans)printf("Yes\n");
    else printf("No\n");
  }
  return 0;
}



你可能感兴趣的:(用来作弊的药水)