zoukankan      html  css  js  c++  java
  • 【纯水题】CF 833A The Meaningless Game

    题目大意

    洛谷链接
    现在两个人做游戏,每个人刚开始都是数字(1),谁赢了就能乘以(k^2),输的乘以(k),现在给你最终这两个人的得分,让你判断是否有这个可能,有可能的话输出Yes,否则输出No

    输入格式

    第一行是数据组数(n)
    接下来(n)行每行给出两个数(a)(b),表示两个人的最终得分。

    数据范围

    (1le nle 350000,1le a,ble 10^9)

    输出格式

    输出(n)行分别为各组的结果。

    样例输入

    6
    2 4
    75 45
    8 8
    16 16
    247 994
    1000000000 1000000

    样例输出

    Yes
    Yes
    Yes
    No
    No
    Yes

    思路

    无论每轮谁赢谁输,结果乘起来之后一定能整除(k^3)
    经过一定轮数后,得到(a、b),则(a、b)一定满足:
    (a×b=k_1^3+k_2^3+k_3^3cdots)
    则把(a)(b)相乘后开立方即可。

    代码

    #include<bits/stdc++.h>
    
    int main(){
    	int n;
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++){
    		int a,b;
    		scanf("%d%d",&a,&b);
    		int k=cbrt((double)a*(double)b);//cbrt是cmath库里的开立方函数
    		int x=a/k,y=b/k;
    		if(x*x*y==a&&y*y*x==b)puts("Yes");
    		else puts("No");//实测puts比printf要快一点,不过在本题也没啥区别
    	}
    	return 0;
    }
    
  • 相关阅读:
    【APUE | 10】函数signal
    【C++ Primer | 15】C++虚函数表剖析②
    【C++ Primer | 15】C++类内存分布
    VMware虚拟机 Ubuntu 16.04 安装
    主题
    【C++ Primer | 15】构造函数与拷贝控制
    08 IO库
    001 库函数【01】
    DataTable序列化及反序列化Json
    DbHelper简单的使用
  • 原文地址:https://www.cnblogs.com/Midoria7/p/12743299.html
Copyright © 2011-2022 走看看