题目链接:https://www.nowcoder.com/acm/contest/115/I
这题目要注意的是!!!pow函数前强制类型转换一定要float !!!一定要是float,double不可以,否则数据一大就会出错,cbrt函数也是这样!!!
解题思路:每回合的k都不一样,所以我们找找规律看看。假设最后 a 得到 x1 分,b 得到 x2 分。假设 a 赢了两局,b 赢了一局那么我们是不是可以将 x1拆分为 x1= k12*k22*k3, 则 x2=k1*k2*k3。
那么就有(x1*x2)1/3==n (n为正整数) 。
这道题还要特判一下,比如a 1分,b 8分。虽然开3次方为2,是正整数,但是却得不到。后台数据也没有卡这点。
AC代码:
1 #include2 #include 3 using namespace std; 4 int main(){ 5 int t; 6 cin>>t; 7 while(t--){ 8 long long a,b; 9 cin>>a>>b;10 long long c=a*b;11 if(a==1&&b==1){12 cout<<"Yes"<