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 Linux
【好玩的开源项目】在Linux系统下部署 star-battle太空飞船射击小游戏
【2月更文挑战第10天】在Linux系统下部署 star-battle太空飞船射击小游戏
143 3
|
图形学
【unity每日一记】——游戏剧情模式中MoveTowards和GameObject.Find()的应用
【unity每日一记】——游戏剧情模式中MoveTowards和GameObject.Find()的应用
102 0
|
Python
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏06之死亡后游戏重新开始
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏06之死亡后游戏重新开始
174 0
|
开发者
你应该试着独自做个游戏
对于大部分从事游戏开发行业的人,其实并没有机会能够完整的去掌控一个游戏制作的全过程。开发的只负责开发工作,美术的只负责美术工作,大概只有策划能够有机会从整体上了解一个游戏,可能在很多公司中,对于策划也分为很多种,如果只是其中的一种策划,也是没有机会的,唯一一个能够从始至终掌控一个游戏的大概叫做总策划或者叫产品经理。
87 0
|
Python
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏04之跳跃
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏04之跳跃
140 0
|
Python 容器
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏05之滚动屏幕
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏05之滚动屏幕
152 0
|
Python
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏01之Pygame游戏模板
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏01之Pygame游戏模板
108 0
|
vr&ar Android开发
梦回童年-使用Compose搞一个贪吃蛇游戏
梦回童年-使用Compose搞一个贪吃蛇游戏
209 0
梦回童年-使用Compose搞一个贪吃蛇游戏
|
物联网
|
安全 Java Devops
1分钟体验代码自动捉虫,Cherry键盘、积木星球抱回家
如今,一款软件的开发往往需要多成员协作开发。 随着人员规模的扩大,如何保证代码的质量和安全,仅靠成员自觉自测,一是花时间,二是质量上难免参差不齐、无法形成统一的流程规范。 引入自动化的代码检测工具,在代码提交时自动检测代码里的缺陷、漏洞等,设定质量卡点等,可以有效提升团队代码的质量和安全,把DevSecOps落到实处。
726 0
1分钟体验代码自动捉虫,Cherry键盘、积木星球抱回家