Loading

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");
        }
    }
}

 

posted @ 2020-08-08 10:18  MQFLLY  阅读(117)  评论(0编辑  收藏  举报