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;
    }
    
  • 相关阅读:
    记录s标签范例
    链表问题总结
    Hibernate学习总结
    HDU2460-Network
    CF464C-Substitutes in Number
    CF666E-Forensic Examination
    CF373C-Counting Kangaroos is Fun
    CF558E-A Simple Task
    HDU5669-Road
    CF341D-Iahub and Xors
  • 原文地址:https://www.cnblogs.com/Midoria7/p/12743299.html
Copyright © 2011-2022 走看看