ZCMU - 1951: ly和wjw的无聊游戏

简介: ZCMU - 1951: ly和wjw的无聊游戏

题目链接:点击打开链接


题目大意:略。


解题思路:我们考虑将 a 和 b 合起来考虑:

a*b=k1^3*k2^3*k3^3*...kn^3=(k1*k2*...kn)^3

所以 a*b 可以表示为某个数的三次方,但是这只是一个必要条件,显然我们还需要考虑对任意 ki,a 和 b 的因子都都有它,因为赢的人乘 ki^2,输的的人乘 ki,也就是幂次比为 1:2 或 2:1,不能存在 0:3 的情况

这时候我们可以发现,若将a进行平方操作,

那么本来 a 胜的回合,ki 的幂次变为 4,ki^4,a 败的回合 ki 的幂次变为 2,ki^2

这时候我们可以发现对应的 b,若 a 胜,ki^1,若 a 败,ki^2,我们可以发现就呈倍数,可以直接判断 a*a%b==0

反过来也一样,需要满足 b*b%a==0

总结一下满足条件的答案 a,b 则需要满足

1、a*a%b==0

2、b*b%a==0

3、存在 x 使得 a*b=x^3

所以二分搜一下 x 是否存在就行了。


AC 代码


/

#include<bits/stdc++.h>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof a);
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
int jde(ll x)
{
    ll l=0,r=1000000,m;
    while(l<=r)
    {
        m=l+((r-l)>>1);
        if(m*m*m==x) return 1;
        else if(m*m*m<x) l=m+1;
        else r=m-1;
    }
    return 0;
}
int main()
{
    int T; scanf("%d",&T);
    ll a,b;
    while(T-- && ~scanf("%lld%lld",&a,&b))
    {
        if(a*a%b==0&&b*b%a==0&&jde(a*b)) puts("Ok");
        else puts("Error");
    }
    return 0;
}
目录
相关文章
|
4月前
|
JavaScript 前端开发
揭秘AngularJS ng-if!掌握它,让你的网页元素如魔法般瞬间现身或消失,性能与创意齐飞!
【8月更文挑战第22天】AngularJS的ng-if指令是控制元素显示与隐藏的关键工具。不同于ng-show/ng-hide仅更改CSS显示属性,ng-if依据表达式的真假动态增删DOM元素,优化页面性能与减少DOM操作。当条件为真时,元素加入DOM并显示;反之,则完全移除。此特性对于条件渲染特别有用,尤其在需移除元素及其子元素并考虑内存优化时。相较于ng-show/ng-hide,ng-if在元素不满足条件时不仅隐藏还会销毁相关作用域,虽可能增加重建元素的成本,却有效降低内存占用。进阶使用中,ng-if结合ng-template可轻松实现模板切换。
44 1
|
7月前
|
机器人 程序员 C++
Scratch3.0——助力新进程序员理解程序(难度案例二、石头剪刀布)
Scratch3.0——助力新进程序员理解程序(难度案例二、石头剪刀布)
71 0
|
JavaScript 前端开发 Python
[BlocklyNukkit入门]#3玩家进服欢迎
首发于Enaium的个人博客 进服欢迎 我们可以在bn的文档里查到PlayerJoinEvent玩家进入服务器的事件 这样我们就可以很“方便”的编写插件了
86 0
|
图形学
【unity每日一记】——游戏剧情模式中MoveTowards和GameObject.Find()的应用
【unity每日一记】——游戏剧情模式中MoveTowards和GameObject.Find()的应用
112 0
|
Python
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏06之死亡后游戏重新开始
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏06之死亡后游戏重新开始
190 0
|
Python
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏04之跳跃
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏04之跳跃
163 0
|
Java
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏16之敌人来了
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏16之敌人来了
139 0
|
Python
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏01之Pygame游戏模板
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏01之Pygame游戏模板
136 0
|
Java
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏13之英雄不要走出屏幕
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏13之英雄不要走出屏幕
145 0
|
Python
Python实现超级玛丽游戏系列教程01玛丽登场
Python实现超级玛丽游戏系列教程01玛丽登场
167 0