zoukankan      html  css  js  c++  java
  • 游戏

    题目

    有一天, krydom 和 darkflames 在 Van You See 。
    一开始,2 个人的分数都是 1 。
    每一个回合,可以任意选择一个数 k,然后 krydom 和 darkflames 猜拳,
    赢的人把自己的分数 *k^2,输的人把自己的分数 *k。
    但是 krydom 变成了老年选手,记忆力衰退,一共(仿佛)回忆起了 n 局
    比赛的最后两个人的分数 Xi, Yi,但是不确定。现在 krydom 想知道对于这 n
    场比赛,每场比赛的最后结果是否有可能是 Xi, Yi。 【输入格式】
    第一行包含一个整数 n ,表示比赛的局数。
    接下来 n 行,每行两个整数 Xi, Yi,表示一个询问。 【输出格式】
    一共 n 行,每行输出 Yes 或者 No 。
    表示第 i 场比赛的结果是否有可能是 Xi, Yi 。 【输入输出样例】
    Input1
    3
    2 4
    75 45
    8 8
    Output1
    Yes
    Yes
    Yes
    Input2
    3
    16 16
    247 994
    1000000000 1000000
    Output2
    No
    No
    Yes
    NOIP2019 模拟赛
    第 8页 共 8页
    【样例解释】
    样例 1 解释:
    1、2 = 2 4 = (2*2)
    2、75 = (5*5)*3 49 = 5*(3*3)
    3、8 = 2*(2*2) 8 = (2*2)*2
    【数据范围】
    对于 20% 的数据满足:n ≤ 10, Xi, Yi ≤ 10 。
    对于 50% 的数据满足:x ≤ 350000, Xi, Yi ≤ 100 。
    对于 100%的数据满足:n ≤ 350000, Xi, Yi ≤ 10^9


    思路

    设 tmp =a*b的立方根。
    如果 tmp 不是整数,显然是 No
    否则怕判断 tmp 是不是 a 和 b 的因数
    如果 tmp 不是 a 的因数或者不是 b 的因数,就是
    No
    否则都是 Yes


    代码

    #include<bits/stdc++.h>
    using namespace std;
    long long a, b, tmp, ans;
    int n;
    void work()
    {
        scanf("%lld%lld",&a,&b);
        tmp=a*b;ans=0;
        int l=1,r=1e6;
        while(l<=r)
        {
            long long mid=(l+r)>>1;
            if(mid*mid*mid==tmp)
            {
                ans=mid;
                break;
            }
            if(mid*mid*mid<tmp)
                l=mid+1; 
            else 
                r=mid-1;
        }
        if(!ans) 
        {
            cout<<"No"<<endl;
            return;
        }
        if(a%ans==0&&b%ans==0)
            cout<<"Yes"<<endl;
        else
            cout<<"No"<<endl;
    }
    
    int main()
    {
        scanf("%d",&n);
        while (n--)
        work();
        return 0;
    }
  • 相关阅读:
    NYOJ 260
    NYOJ 271
    [转载]《博客园精华集》Winform筛选结果(共105篇)
    在DataGridView控件中加入ComboBox下拉列表框的实现
    给SQL补充一个查看表结构的存储过程
    编写自定义控件之下拉式属性
    PropertyGrid中的枚举显示为中文(转)
    DataGridView 中合并单元格
    树TreeView控件与DataTable交互添加节点(最高效的方法)
    通过键盘方向键控制TreeView节点的移动
  • 原文地址:https://www.cnblogs.com/abcdhh/p/11191497.html
Copyright © 2011-2022 走看看