首页 > 其他 > 详细

CodeForces - 834C The Meaningless Game 二分,思维

时间:2020-08-08 11:00:44      阅读:68      评论:0      收藏:0      [点我收藏+]

两人玩游戏,对于一个自然数,每一轮必然是某人得分 * 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");
        }
    }
}

 

CodeForces - 834C The Meaningless Game 二分,思维

原文:https://www.cnblogs.com/hznumqf/p/13456625.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!