CodeForces - 834C The Meaningless Game 二分,思维
两人玩游戏,对于一个自然数,每一轮必然是某人得分 * k ,另一人得分 *k*k
给出最终两人的分数,问是否合理。
很自然想到的做法:算出a*b的三次根式,判断这个能否整除a和b。具体证明不太会,CF猜就完事了
方法:二分。当然也可以预处理进入map
int main() { int T = readint(); while (T--) { ull a = readull(), b = readull(); ull mu = a * b; ull l = 1, r = 1000000; while (l < r) { ull mid = l + r >> 1; if (mid * mid * mid == mu) { l = mid; break; } if (mid * mid * mid >= mu) r = mid; else l = mid + 1; } if (l * l * l != mu) { puts("No"); } else { if (a % l == 0 && b % l == 0) puts("Yes"); else puts("No"); } } }